Coding/JAVA

3.1 객체 지향과 클래스

미스터로즈 2019. 7. 22. 23:24

객체 지향 언어

객체들은 특성과 행동을 가지며 이러한 특성과 행동은 상호작용하며 만들었습니다.

클래스와 객체의 개념을 도입했습니다.

 

객체 지향 언어의 특성 3가지

-캡슐화

-상속

-다형성

 

캡슐화

객체를 캡슐로 싸서 그 내부를 보호하고 볼 수 없게 하는것으로 객체의 가장 본질적인 특성입니다.

클래스 모양 그대로 생성된 실체 즉 인스턴스가 객체이다. 그리고 필드와 메소드가 클래스 내에 구현된다.

필드는 String name; int age; 가 만들어 지는 부분이고, void sleep(); void walk(); 등이 구현 되는 것을 메소드라고 한다.

 

상속

상위 개체의 속성이 하위 개체에 물러져서, 하위 개체가 상위 개체의 속성을 모두 가지는 관계

부모 클래스의 속성을 물려받아 확장하는 개념입니다.

부모클래스 -> 슈퍼 클래스

자식클래스 -> 서브 클래스

 

다형성

같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 구현되는 것

메소드 오버라이딩 , 메소드 오버로딩이 다형성을 보여준다.

이 두개는 나중에 자세히 볼 예정이다.

 

자바 클래스

class 키워드로 클래스를 선언합니다.

클래스의 구성 요소를 멤버라고 부르며, 멤버는 필드와 메소드가 있습니다.

 

public private protected 와 같은 접근 지정자는 접근 권한을 제한하는 부분입니다.

 

///////////////////////Circle 클래스////////////////////////////////

public/*클래스에 대한 접근 권한*/ class/*클래스 선언*/ Circle/*클래스 이름*/{

  int radius;

  String name;

  //radius, name은 필드가 된다.

 

  public/*메소드에 대한 접근 권한*/ double getArea(){//이 부분은 메소드가 된다.

    return 3.14*radius*radius;

  }

}

//////////////////////Circle 클래스의 활용 코드//////////////////////////////////

public class Circle{

  int radius;

  String name;

 

  public double getArea(){

    return 3.14*radius*radius;

  }

 

  public static void main(String[] args){

    Circle pizza; // 객체에 대한 레퍼런스 변수 선언

    pizza = new Circle(); // Circle 객체 생성

    pizza.radius = 10;  

    pizza.name = "Rose피자";

    double area = pizza.getArea();

    System.out.println(pizza.name + " 의 면적은 : " + area);

 

    Circle dount = new Circle(); //레퍼런스 변수 dount의 선언과 동시에 객체 생성

    dount.radius = 10;

    dount.name = "Rose피자";

    double area = dount.getArea();

    System.out.println(dount.name + " 의 면적은 : " + area);

  }

}

//////////////////////////////////////////////////////////////////////////////////

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

백준_4307 개미(자바) / 구현  (0) 2021.11.20
백준_15652 N과 M(4) (자바) / 백트래킹  (0) 2021.09.13
2.7 자바의 배열  (0) 2019.07.21
2.6 조건문과 반복문  (0) 2019.07.18
2.4 연산자  (0) 2019.07.17