* 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 |