1. class

 1) 분류라는 의미의 Classification에서 왔다.

 2) Data와 Functions을 가지고있는 데이터 구조(Data structure)이다.


2. object

 1) 속성(property, state, attribute) : variable constants

 2) 행위(behavior) : method


3. 객체지향의 주요 특성.
 1) 추상화 (Abstraction) : 모델링 과정

 2) 캡슐화 (Encapsulation) : 중요한 부분을 외부로인한 접근과 변경으로부터 보호하기위함.
  - MS : Visibility(은닉)
  - Java : Accessibility(접근) : public / private
  - get/set : private 변수에 접근하기 위해 셋터와 겟터를 이용한다.
  - this : 멤버변수를 사용 (지역변수와 멤버변수명이 같을 때 멤버변수를 지칭하기위해 사용한다.)
 


 3) 상속화 (Inheritance)
 4) 다형성 (Polymorphism)

4. 생성자 : Allocating memory 
 1) 멤버 변수의 초기화는 생성자가 해야 한다.
 2) 특별한 메소드이다. : 기본적으로 생성자 메소드는 생략되어있다. : 
  - 리턴타입이 없다. 
  - 이름이 정해져있다(클래스이름)
  - new 와 함께만 사용할 수 있다.
 3) 정의 된 기본 생성자를 새로 정의 하는것 : 오버라이딩 (Overriding) 

public class ConstructorDemo2 {

public static void main(String[] args) {

Person1 p = new Person1("김태형", 27, 100.0);

Person1 p1 = new Person1("마이클", 28);

}

}

 public class Person1 {

private String name;

private int age;

private double salary;

public Person1(String name, int age, double salary){ // 기본 생성자의 오버라이딩.

this.name = name;

this.age = age;

this.salary = salary;

}

public Person1(String name, int age){ // 오버로딩

this.name = name;

this.age = age;

}

}

 기본 생성자의 경우는 오버라이딩(Overriding)과 오버로딩(Overloading) 모두 다 필요할 때가 있다.



4) this메소드

  - 생성자 내부에서 생성자를 호출 할 때 사용하는 것으로, this메소드는 생성자 안에서만 사용해야하며 블록의 첫줄에 써야한다.

 public class Person2 {

private String name;

private int age;

public Person2(){

//System.out.println("나 기본생성자.");

this("unknown",19);

}

public Person2(String name){this(name,19);}

public Person2(int age){this("unknown",age);}

public Person2(String name, int age){

this.name = name; this.age = age;

}

publi void main(String[] args){

Person2 p = new Person2();

}

}

 생성자 내에서 생성을 하면 또다른 주소가 생성되기 때문에 사용 할 수 없다. 그래서 this메소드를 사용한다.

ex)






ps.-------------------------------------------------------------
- main 함수가 없는 클래스는 스스로 단위 test(JUnit)를 통해 문제가 있는지 검사하게 된다. 
- 터미널에서 직접 컴파일을 할 경우 main 함수가 없는 클래스 부터 컴파일을 해야했지만 현재는 main함수가 포함된  클래스만 컴파일 해도 자동으로 모든 클래스 들을 컴파일을 해 준다.
- System.exit(-1);  //자바 프로그램 강제종료
- Java SE 에서 String Parsing 하는 방법 3가지
  1) String.split();
    - 
  2) java.util.StringTokienizer class
  3) Scanner class

 for (int i = 0; i < this.array.length; i++) {

String line = this.scan.nextLine().trim();

String [] array = line.split("\\s+");  //+는 1번 스페이스가 1개 이상이면 짜른다. ?는 0또는 1개, *는 0번 또는 1번이상(모두) 


'Programming > JAVA' 카테고리의 다른 글

자바 객체지향의 특징3 (다형성,Overriding)  (0) 2011.03.24
자바 객체지향의 특징2 (상속화)  (1) 2011.03.24
자바 메소드(method)  (3) 2011.03.24
자바 배열이란?  (2) 2011.03.24
자바 제어문(조건/반복/분기)  (2) 2011.03.24

+ Recent posts