class는 데이터 + 메소드의 수행까지 포함됨
main() 메소드는 JAP에 반드시 있어야 하는 특수한 메소드.
프로그램 실행 시 자동으로 실행되는 메소드.
main()메소드는 String의 array를 argument로 받는다 (명령행 매개변수)
args[0] 요런식 (String이기때문에 필요 시 변환해야함. ex: Integer.parseInt(args[0]))
캡슐화
Object를 작성할 때 숨겨야 하는 정보(private)와 공개해야 하는 정보(public)를 구분하여 작성.
Object의 사용자는 기능만 알고 사용하며 어떻게 처리되는지는 은폐된다 (캡슐화)
캡슐화의 장점:
object에 포함된 정보의 손상과 오용을 막을 수 있다.
object 조작 방법이 바뀌어도 사용 방법은 바뀌지 않는다.
data가 바뀌어도 다른 object에 영향을 주지 않아 독립성이 유지됨
처리된 결과만 사용하므로 object의 이식성이 좋음.
object를 부품화 할 수 있어 새로운 시스템의 구성에 부품처럼 사용할 수 있다.
message
object에게 일을 시키는 행위
1. object의 이름(주소)
2. 수신 object의 method 이름
3. method에 전달할 매개변수
가 필요함
point.move(10,10); 이런식의 메소드 호출을 message라고 함.
다형성
서로 다른 object가 동일한 message에 대하여 서로 다른 방법으로 응답할 수 있는 기능.
모형.draw();라는 메소드가 있다고 치자
같은 draw()메소드지만
삼각형A.draw() => 삼각형을 그림
사각형A.draw() => 사각형을 그림
상위 추상 클래스에 추상method가 선언되고,
상속받는 하위 클래스에 같은 이름의 method가 선언된다.
abstract class Shape{
abstract void draw();}
class Circle extends Shape{
void draw(){
//원을 그리는 기능}
}
class Rectangle extends Shape{
void draw(){
//사각형을 그리는 기능}
}
다형성의 전형적인 형태.
Shape shapes[] = new Shape[3];
shapes[0] = new Circle();
shapes[1] = new Rectangle();
shapes[2] = new Triangle();
for(int i=1;i<3;i++){
shapes[i].draw();}
'2022-2 > 자바' 카테고리의 다른 글
오버로딩 (0) | 2022.10.20 |
---|---|
객체와 클래스 (0) | 2022.10.11 |
자바 - 명령행 매개변수, 클래스, 클래스 상속, 클래스 배열 (0) | 2022.09.27 |
자바 - 객체 복사 참고사항 (0) | 2022.09.25 |
자바 실습 - 방 배정 (2) | 2022.09.25 |
댓글