① ==
String text1 = new String("hi");
String text2 = new String("hi");
Systm.out.println(text1==text2); // False
② equals
String text1 = new String("hi");
String text2 = new String("hi");
System.out.pringln(text1.equals(text2)); // 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 (동일한 내용)
java의 반복문은 c나 python의 반복문과 유사
for(int i=0;i<5;i++)
System.out.println("반복 중 : " + i);
int i=0;
while(i<5)
{
System.out.println(i);
i++;
}
// 0 1 2 3 4 <- 차례로 출력
※ continue 와 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);
}
상위(부모)클래스의 변수와 메서드를 하위(자식)클래스가 물려받는 것
class Parent
{
void func(){System.out.println("func!!!");}
}
class Child extends Parent
{
// func()를 물려받음
}
상속받은 메서드를 자식 클래스에서 재정의
class Child extends Parent
{
void func(){System.out.println("func 재정의~~~~~~~~~~");}
}
같은 이름, 다른 매개변수를 가진 여러 함수들의 정의
-> 다른 별개의 함수. 함수 호출 시 매개변수의 개수와 유형을 보고 해당되는 함수가 호출된다.
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
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 키워드