*클래스멤버와 인스턴스 멤버
-클래스 메서드(static 메서드)는 객체를 생성하지 않고 'class이름.메서드이름'로 사용가능
같은 클래스내에서는 '메서드이름'만 써서 사용가능
-static메서드에서 인스턴스변수,인스턴스 메서드 사용x => 인스턴스멤버가 존재하는 시점에 클래스멤버는 항상 존재하지만, 클래스멤버가 존재하는 시점에 인스턴스멤버가 존재하지 않을 수도 있기 때문에
-인스턴스변수,인스턴스 메서드에서 static메서드 사용O
*오버로딩
-오버로딩(=메서드 오버로딩): 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것
-만족: 1)메서드 이름이 같아야 한다. 2)매개변수개수 또는 타입이 달라야한다.
* 가변인자: ex)String concatenate(String... str){...}
System.out.println(concatenate()); //인자가 없음
System.out.println(concatenate("a"); //인자가 하나
System.out.println(concatenate("a","b"); //인자가 둘
System.oout.println(Concatenate(new String[]{"A","B"})) //배열도 가능
-가변인자가 선언된 메서드를 호출할 때 마다 배열이 새로 생성된다.->비효율
-매개변수 타입을 배열로 하는것과 차이점->인자를 생략할수 없으며 null이나 길이가 0인 배열을 인자로 지정해주어야 한다.
가변인자로 Concatenate({"100","200","300"})이 나올수는 x
-가변인자를 선언한 메서드를 오버로딩하면 구별되지 못하는 경우 발생하기 쉬우므로 주의할 것
*생성자
-생성자: 인스턴스 초기화 메서드로 인스턴스 변수의 초기화 작업에 사용
-만족: 1)생성자의 이름은 클래스의 이름과 같아야 한다. 2)생성자는 리턴값이 없다.(void사용x)
모든 클래스에는 반드시 하나 이상의 생성자가 정의되어 있다.
컴파일러가 제공하는 '기본생성자' -> 클래스내에 생성자가 하나도 없을때만 자동으로 추가됨
*자바 명명규칙 https://crosstheline.tistory.com/67
'언어 > Java' 카테고리의 다른 글
[Java] PrintWriter 사용 시 한글 깨짐 현상 해결방법 (0) | 2019.10.03 |
---|---|
[JAVA의정석] Ch7 객체지향 프로그래밍II - 상속, 오버라이딩 (0) | 2019.02.08 |
[Java의 정석/연습문제 6장] 오답 정리 (0) | 2019.02.08 |
190223 생성자 (0) | 2019.02.03 |
190130 객체지향프로그래밍I - ① (0) | 2019.01.31 |