1.     객체(Object)

 : 속성과 행위로 객체를 표현. 같은 객체라도 속성과 행위로 구분.

1)    속성(field)

 

2)    행위(Method)

: return

 

Ex)사람(객체) – 이름(속성) – 앉아있다.(행위)

   교실(객체) – 인원(속성) – 공부하고있다.(행위)


CLASS

: 클래스는 객체를 만드는 틀이다.


 

1. 객체지향특성

 

(1) 상속성 (inheritance)

   : 상속은 (계층구조일때) 부모의 field Method 물려받는 것이다.(공유)

*상속성의 이유 : 부모Class의 동일한 부분을 상속받음으로써 개발속도 향상.

*방법 class “classname” extends “부모classname”

 

  (2) 다형성 (polymorphism)

     : 다형성은 Method의 상속을 사용하는 개념 (상속의 개념이지만, Sub Class의 특징으로 물려받음)

     Ex) 그리다(Method) – Class(도형) : 부모의 필드와 메소드를 상속

         삼각형 그리다, 사각형을 그리다 : Class의 따라서 Method의 세부내용도 달라짐.

     *오버라이딩 : 상속관계에서 상위(Super)Class에서 정의된 내용을 하위에서 재정의.

     *오버로딩  : 하나의 Method를 여러 번 정의하는 것.

 

   (3) 은닉성 (Information Hiding)

 (4) 캡슐화 (Encapsulation)

 

2. 자바의 변수

  (1) 레퍼런스 형(Reference Type / 객체형 / 참조형) 변수

(2) 기본형 (primitive type) 변수

 

n  객체지향특성(Detail)

 

 (1)  상속성 (inheritance) (=재사용성, 확장)

:상위 클래스에서 정의한 속성을 재사용, 확장하여 개발속도를 개선시키려고 만든개념.

서로 다른 Class들이 유사한 속성을 공유하기위해 추상방법으로 두가지가 존재.

 

1. 일반화(Generalization)

  : Super Class의 특성을 Sub Class가 상속받는다는 특성을 일반화라고함.

 

2. 특수화(Specialization)

   : Sub Class Super Class와 비교했을 때 특수화 하는 경우를 특수화라고함.

 

Ps. 상속을 위해서 extends 키워드 사용

) [public/abstract/final] class 서브클래스 이름 extends 슈퍼클래스 이름 {}

 

(2) 다형성 (polymorphism) 4

: 여러 개의 클래스가 같은 메시지에 대해서 서로 다른 각자의 방법으로 작동할 수

있도록 하는 특성

하나의 데이터 유형의 변수로 여러 유형의 객체를 참조가능

변수가 참조하는 객체의 유형에 맞는 메서드를 자동으로 호출할 수 있는 능력을 의미

 

하나의 인터페이스를 이용하여 다양한 구현을 제공한다는 의미 (효율성증대)

 

1.     다형성을 위한 필요조건 (상속관계)

:서브클래스 객체에서 작동

서브클래스 객체의 메서드 호출은 슈퍼클래스 유형의 변수를 통해야 함

호출된 메서드는 슈퍼클래스의 멤버이어야 함

슈퍼클래스와 서브클래스에서 메서드의 특징이 같아야 함

 

(3) 은닉성

:  데이터의 훼손방지 및 보안을 위해서 외부 클래스의 접근을 제한하는 특성

객체의 데이터와 메서드는 외부에 노출하지 않고,

인터페이스를 통해 값을 입력 받아 수행 후 결과만 제공

메서드의 수행 결과만을 사용하므로 객체의 이식성과 호환성이 좋음

데이터의 변경이 발생되어도 다른 객체에 영향을 주지 않으므로 독립성이 보장됨.

 

 

 

<적용법>

멤버변수를 private(접근제한자:클래스끼리만)으로 선언

private 멤버변수에 접근할 수 있는 setter/getter 형태의 메서드를 public로 선언

 

public void set(멤버데이터타입 인자명) { 멤버변수명 = 인자명; }

public 멤버데이터타입 get { return 멤버변수명 }

 

 

 

(4) 캡슐화 (Encapsulation)

클래스의 내부 정의에 대해 외부에서 볼 수 없도록 하는 것이 특징이다.

클래스에 정의된 메서드(Interface)만 사용할 수 있으며,

내부의 속성과 구현은 볼 수 없게 디자인한다.

캡슐화는 객체를 외부의 부정적인 방법(또는 잘못된 방법)으로 사용하는 것을 방지하며,

사용자가 클래스의 내부에 대해 알지 못하는 상황에서도 외부에 공개된 메서드(Interface)

통해 객체사용을 가능하게 해준다.

 

Ex) 알약은 캡슐화 되어있어 뭐가 들어있는지 모름.

 

변수(variable)  <>상수

:

1) Reference Type : 참조형

      - new 생성자();{ }

      - new "생성자"가 만나면 객체생성.

      - "=" 대입연산자 : 오른쪽에있는것을 왼쪽에 넣으라는.

 

2)    Primitive : 기본형

 

 

<Class 기본개념>

 class "Class name" {

         속성(field)Type "속성name";

           void "Method name"(){

           내용”;

           }

}

 

<Class 상속성 개념>

 class "Sub Class name" extends "Super Class"{

           public static void main(Sting[]args){

                     "Classname" "변수" = new "SubClass name"();

                                변수.Method();

                                변수.Method();

           }

}

다른 카테고리의 글 목록

자바 기본 공부/기초 이론 카테고리의 포스트를 톺아봅니다