1. 클래스와 객체의 개념
: 클래스는 건축에서의 설계도와 같으며, 객체(object)란 설계도를 통해 지어진 집의 의미와 일맥상통함.
1) 클래스(Class) : 특정 종류의 모든 객체들의 원형.
2) 객체(Object) : 클래스를 통해 생성된 대상을 의미.
☆재 사용 가능하도록 클래스를 설계하는 것이 매우 중요!★
2. 클래스
1) 클래스의 구조
[클래스명] * 클래스명은 왜 대문자일까???
class Test(){ 암묵적 Rule임. 변수명은 소문자로 시작, 클래스명은 대문자로 시작.
[멤버 변수]
public int a = 0;
private char b = 'c';
[생성자]
public Test(){
}
[메소드]
public void plus(int a, int b){
System.out.println(a+b);
}
}
3. Object 생성 및 생성자의 개념
1) Object 생성방법 : new 연산자를 통해서 생성한다.
Class명 (변수명) = new (생성자명);
~ 생성자를 참고하여 새로운 객체를 만들어라.
* new : 클래스를 통해 객체를 생성할 때 쓰는 연산자.
2) 생성자 : 메모리 내에 객체가 생성될 때 자동적으로 단 한 번 호출되어 객체의 구조를 인식하고, 생성되는 객체의 멤버변수들을 초기화하는데 목적을 둔 것을 말함.
특징 ) returnType이 정의되어 있지 않다.
생성자명은 클래스명과 같아야 한다.
4. 오버로딩
1) 오버로딩
: 하나의 클래스 내에 인수의 개수나 형이 다른 동일한 이름의 메소드를 여러 개 정의하는 것.
* 오버로딩은 왜 하는 것일까?
: 같은 기능을 하는 것들이기에 같은 이름을 써주는 것이 통일감을 주고, 복잡성/혼돈을 줄이기 위해 사용함.
public void plus(int a, int b){
System.out.println(a+b);} * plus 메소드는 같은 이름이지만 파라미터로
public void plus(int a, int b, int c){ 서로 다른 역할을 한다.
System.out.println(a+b+c);}
2) 생성자에서 오버로딩을 사용하여 초기값 셋팅을 다양하게 할 수 있음.
public class Mp3{
public String color = "";
public int price = 0;
public Mp3(){}
public Mp3(String param1, String param2){
this.color = param1;
this.price = param2;
}
public static void main(String args[]){
Mp3 mp3_1 = new Mp3();
Mp3 mp3_2 = new Mp3("red",10000);
}
}
5. this & this()
1) this : 특정 객체 내에서 현재 객체 자신을 의미하는 참조 변수.
* 메인 메소드에서는 this를 쓸 수 없다. 왜 그럴까?
: 메인 메소드는 메소드에는 속하지만 클래스에 속하지 않는 메소드이다. 단순 시작 역할.
따라서 객체 생성을 통해 변수를 호출해야 함.
2) this() : 현재 객체 내의 생성자를 의미. 생성자 간 이동을 하기 위해 쓰여진다.
반드시 생성자의 첫 행에 정의해야 함.
올바른 작성 올바르지 못한 작성
public ThisConstr(){ public ThisConstr(){
this(" "); int a = 10;
} this(" ");
}
6. Main Method
1) 프로그램이 실행할 때 최초로 호출되는 메소드. 하나의 클래스에 한 개만 기술할 수 있음.
2) 파라미터를 이용하여 실행 시 Arguments를 입력받을 수 있다.
* 메인메소드는 public static void main(String args[]) 로 시작된다.
여기서 args[]는 String 배열을 뜻한다. 단순 이름이기 때문에 꼭 args가 아니어도 된다.
만약 자바를 실행할 때...
C:> javac Test.java 를 입력해 컴파일을 해주고
C:> java Test red color blue 를 해준다.
그럼 args의 배열 길이는 3이 나오며, args[0] = red, args[1] = color, args[2] = blue 임.
'PROGRAMMING > JAVA' 카테고리의 다른 글
4. 상속(inheritance) (0) | 2013.02.25 |
---|---|
3. 배열(Array) (0) | 2013.02.25 |
1. JAVA 기초 (2) | 2013.02.20 |
eclipse 자바독 API 만들기 (126) | 2012.12.21 |
JavaDoc을 쓰기 위한 주석달기 방법 (1) | 2012.11.29 |