ㅇTL

chap 4. class 본문

2-1/객체지향 - java

chap 4. class

정노르레기 2022. 4. 2. 20:42

* class = OOP(object-oriented programming 객체지향프로그래밍) 을 가능케 함 !

* 자바 프로그래밍은 

- 모든 프로그램은 클래스이다

- 모든 도와주는 software은 class로 이루어져있다

- 모든 프로그래머가 정의한 type은 클래스이다!

-> Classes are central to JAVA

 

type

- 변수 -> class type이기 가능(당연) -> 해당 변수는 object / instance 라고 부름

- class 내에도 class 변수 가능

class definition

- data item과 method를 정의함 -> member 라고 불림

- 순서 무관

new

-> 이걸로 선언

Classtype name = new Classtype() 이렇게 변수에 할당

(object를 만들고 변수에 할당함)

Members 

-> 클래스.이름 으로 접근

• variable

- public int 변수명 ; // 이렇게 정의

• method

- public 반환타입(void, int 등) 함수이름() { }  //이렇게 정의

 


기본 개념들

local 변수

- main method 안에 선언된 declared 변수들

- 모든 메소드의 parameter

( 서로 다른 함수가 같은 변수가지고 잇어도 이건 서로 다른 변수 (당연))

 

global 변수

- > 자바에는 존재 X !!

 

Blocks = { }

- block 안에 선언된 변수 -> 해당 변수는 해당 블럭에 대해 local이다. 그리고 해당 block밖에서 사용불가

- 해당 블럭안에서 사용되었었던 변수 이름은 다시 사용 불가

 

Parameter of primitive type

- parameter 은 함수로 전달되는 변수  int a 이런거고

- argument 는 넣어지는 실제 값 (3)

 

this

= 자기 자신 오브젝트 호출. 현재 소속되어 있는 클래스를 가리키는 키워드

- 이름 같은 parameter/local variable있으면 클래스꺼 쓸때는 무조건 this 해야함

   안그러면 -> 다 local로 해석됨 !!

 

equlas & toString

 

공개범위 - modifiers (identifier = 변수 이름)

- public : class밖에서도 해당 변수/함수에 접근 가능.(어디서든 접근 가능) 거의 모든 함수가 public

- private : class 내에서만 해당 변수/함수에 접근 가능. 거의 모든 변수가 private

- final : 멤버의 변경을 금지. 상수화 !! (매소드/클래스 -> 상속 불가인듯)

 

Information hiding

: abstraction. 추상화. 클래스의 사용 방법과 그 구현의 세부사항을 숨기는 개념. 

-> 자바에서는 세부 정보를 private으로 하여 숨김

Encapsulation

: data와 method를 클래스 내부에 결합.

  객체와의 상효작용은 잘 정의되고 단순한 인터페이스를 통해 이루어짐! 

  모든 정보들이 한 클래스 내에 정의되는 것

 

API

= application prigramming interface. 어떻게 그 클래스를 이용하는지에 대한 묘사

ADT

= abstract data type. 좋은 information hiding tech를 이용해 쓰여진 data type

 

Accessor method -> getter

: accessor method는 객체의 instance variable 값을 얻게 해준다

-> method의 시작 부분에 get 붙임 (리턴)

Mutator method -> setter

: 객체의 변수의 값을 바꿀 수 있도록 한다

-> method의 시작 부분에 set 붙임 (void)

 

Method overloading

* 함수 signiture은 이름과 매개변수. 이름이 만약에 같으면 매개변수가 꼭 달라야 다른 함수임!

(리턴형은 signiture 아님 !! 리턴형 달라봐야 아무 의미 없음)

-> overloading은 같은 클래스 내에 이름은 같지만 매개 변수는 다른 서로 다른 함수들이 있는 것을 말함.

!! 이름만 같고 매개변수는 달라서 다른 함수 인 것 !!

 

constructor

-> 클래스 생성할 때 한번만 호출되는 메소드.

-> 변수를 초기화 하는데 사용

• 리턴형이 없다 ! (void 도 아님. 리턴되는 type이 없음)

• overloaded가능 (매개변수 다르게 여러번 작성 가능)

• 생성자 아무것도 선언 안해놓으면 default가 호출됨 -> 매개변수 x.

  ( default는 no-argument이고 아무 초기화도 진행하지 않는다 )

  - boolean -> false

  - class -> null

  - 다른 primitive 타입 -> 0으로 (각 타입의 zero값)

• 생성자 하나라도 있으면 default안생김

 ( 이때 아규먼트 잇는거만드럿는데 아규먼트안주면 default없으므로 에러)

'2-1 > 객체지향 - java' 카테고리의 다른 글

Chap 7. Inheritance (상속)  (0) 2022.04.12
Chap 6. Arrays ..  (0) 2022.04.06
Chap5-2  (0) 2022.04.04
Chap 1,2  (0) 2022.03.30
chap.5 - static 등등  (0) 2022.03.26