[정보처리 기사] Java 정리

양현지·2024년 7월 27일
0

정보처리기사

목록 보기
2/2

1. Java Equals

1) == 와 equals

① ==

String text1 = new String("hi");
String text2 = new String("hi");
Systm.out.println(text1==text2); // False 
  • 두 변수 text1과 text2가 같은 메모리 주소를 가지고 있는 지를 동일 여부로 확인
    따라서 위 두 객체는 동일한 내용의 문자열을 갖지만, 각기 다른 메모리 영역을 가지므로 False를 반환

② equals

String text1 = new String("hi");
String text2 = new String("hi");
System.out.pringln(text1.equals(text2));	// true
  • 두 변수의 "내용"이 같은지를 확인
    따라서 위 두 객체는 동일한 내용의 문자열을 갖으므로 true를 반환

@ 기출

String str1 = 'Programming';
String str2 = 'Programming';
String str3 = new String('Programming');
println(str1==str2);	// true (동일한 객체를 할당 받음)
println(str1==str3);	// false (new를 통해 새로운 객체, 새로운 메모리 공간을 할당 받음)
println(str1.equals(str3));	// true (동일한 내용)
println(str2.equeals(str3));	// true (동일한 내용)

2. Java 반복문

1) for

java의 반복문은 c나 python의 반복문과 유사

  • for(초기화;조건;증감)
for(int i=0;i<5;i++)
	System.out.println("반복 중 : " + i);

2) while

  • while(조건)
int i=0;
while(i<5)
{
	System.out.println(i);
    i++;
}
// 0 1 2 3 4 <- 차례로 출력

※ continue 와 break

  • continue : 해당 반복문을 skip
  • break : 반복문 탈출

@ 기출

public class Main
{
	public static void main(String[] args)
    {
    	int i=0,sum=0;
        while(i<10)
        {
        	i++;					// 증감식이 반복문 내부에 존재. i=9일때 반복문 진입 후 i값을 10으로 갱신
            if(i%2 ==1) continue;	// 홀수 일때 skip!
            sum+=i;					// i=1일때부터 10일때까지의 모든 짝수의 합을 계산
        }
    }
    System.out.println(sum);
}

3. Java 상속

상위(부모)클래스의 변수와 메서드를 하위(자식)클래스가 물려받는 것

class Parent
{
	void func(){System.out.println("func!!!");}
}
class Child extends Parent
{	
	// func()를 물려받음
}

1) 함수 오버라이딩

상속받은 메서드를 자식 클래스에서 재정의

class Child extends Parent
{	
	void func(){System.out.println("func 재정의~~~~~~~~~~");}
}

2) 함수 오버로딩

같은 이름, 다른 매개변수를 가진 여러 함수들의 정의
-> 다른 별개의 함수. 함수 호출 시 매개변수의 개수와 유형을 보고 해당되는 함수가 호출된다.

int sum(int a,int b){return a+b;}
int sum(int a,int b,int c){return a+b+c;}

@ 기출

public static void main(String[] args)
{
    ovr1 a1 = new ovr1();
    ovr2 a2 = new ovr2();
	System.out.println(a1.sum(3,2) + a2.sum(3,2));
}
public class ovr1
{
    int sum(int x,int y)
    {
    	return x+y;
    }
}
class ovr2 extends ovr1
{
	int sum(int x,int y)
    {
    	return x-y+super.sum(x,y);
    }
}

a1.sum(3,2) : return 3-2 + (3+2) = 6
a2.sum(3,2) : return 3+2 = 5
실행 결과 : 11

4. Java 추상 클래스

java 추상 클래스란 추상, 객체로 만들 수 는 없지만 다른 클래스들이 상속받아 완성해야하는 기본 틀이 되는 클래스

  • java 추상 클래스는 '틀'; 메서드 이름, 반환값,입력 값, 반환 형만 정의
    => 상속받는 클래스가 이 틀을 '구현'해야 객체로 만들어 사용할 수 있음

★ 싱글톤 패턴
: 클래스의 객체가 1개만 생성되는 것을 보장하도록 설계된 클래스

class Connection
{
	private static Connection _inst = null;
    private int count=0;
    
    static public Connection get()
    {
    	if(_inst == null)
        {
        	_inst = new Connection();
            return _inst;
        }
        return _inst;
    }
    public void count() {count++;}
    public int getCount() { return count;}
}
public class testcon
{
	public static void main(String[] args)
    {
    	Connection conn1 = Connection.get();		// 최초 Connection 객체(_inst) 생성
        conn1.count();								// count ++  (1)
        Connection conn2 = Connection.get();		// conn1 과 동일한 객체 반환
        conn2.count();								// count ++ (2)
        Connection conn3 = Connection.get();		// conn1과 동일한 객체 반환
        conn3.count();								// count ++ (3)
        System.out.print(conn1.getCount());			// 3 
    }
}

★static 키워드

  • static 키워드 사용 시 class 밖에서도 객체 생성 없이 사용이 가능하다. 따라서 static 함수 내에서 반환하는 값은 static 변수에 한한다.

※출처 : [꿈꾸는 라이언]정보처리기사 실기 기출 풀이집

0개의 댓글