20.12.01

4348 단어 JavaJava
1. 클래스 기본 개념

- 남의부품을 가져다 쓴다 -> 어떻게 남의 부품을 쓸 때 편할까?
- 자바는 분류(정리)부터한다
- 자바는 패키지와 클래스라는 분류 체계가 존재한다
- 패키지는 클래스들을 담아놓는 폴더와 같다.
- 클래스는 각 종 메소드와 변수등을 담는 분류이다
- 클래스의 이름은 어떤 변수와 함수의 종류를 대변하는 이름이어야 한다

2. 클래스의 특징
- OOP객체 지향 프로그래밍(Object-oriented programming) 4가지 속성
	- 캡슐화, 상속, 추상화, 다형성 ( 면접에서 추상화랑 다형성 많이 물어봄 ★)
	캡슐화 : 특정부분의 접근을 제한하는 것을 캡슐화 라고 부른다
	상속 : 상속은 내가 없는 것을 부모에게 물려 받아서 원래 내 것처럼 사용하는 것이다
	다형성 : 다형성 자식객체가 부모객체 형태의 변수에 들어갈 수 있다. 그래서 같은 부모를 상속받은 클래스는 같은 타입으로 들어갈 수 있다
	추상화 : 공통되는 특성을 추출하여 단순화 시키는 작업이어서 전체적인 규격을 만들어 주기 때문에 공통화 작업을 할 때 많이 사용한다.

- 자바파일은 최소1개 이상의 클래스를 가지고 있어야한다
- 클래스는 하나의 자료형이 될수있다(String, Integer, Double)
	- 일반 자료형이랑 비교방법은 .찍으면 클래스일 경우 뭐가 많이 나옴
- 클래스 안에 클래스를 선언할 수도 있다 ( 분류 안에 분류 )
- 클래스는 다른 이름이랑 겹치면 안된다

3. 클래스의 규칙
- 첫글자는 대문자로 시작해야한다
- $,_외의 특수문자는 사용할수 없다(언더바 빼고 사용안한다고 봐라)
- 클래스와 자바파일명은 서로 동일 해야한다(만들때 이클립스가 다 맞춰줌)

4. 클래스 생성

- 9 , 10 , 11 : Student라는 클래스 안에 변수를 만들어 준 것이다
- 13 , 14 , 15 , 16 : Student라는 클래스 안에 메서드를 만들어 준 것이다

5. 클래스의 객체화

- 이런 클래스간 관계를 그린그림을 Class Diagram 이라고 부른다

- 클래스의 특정 내용을 사용하기 위해서는 클래스를 객체화 해야한다
- 객체화란 원본 클래스를 복사해오는것을 의미한다
- 객체와 객체는 서로 다르다
- 12 ,13 : 변수타입 변수 = new 클래스();
	○ new : 이 클래스를 변수에 복사 하겠다는 의미

- static : 클래스 원본이 있는 영역
- heap : new 선언시 클래스를 복사해오는 영역

- 위의 출력값인데 @뒤는 객체 일련번호를 의미한다
- 두 객체는 같은 클래스를 복사해왔지만 각각은 다른 객체이다
- 그러므로 17의 출력이 false로 나오게 된다.

6. API문서
- 응용프로그램(앱)에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
- 실제로하면 복잡한일을 간단하게 할 수 있는 장치
	○ 전구를 켤 때 전선을 직접 연결하지 않고 스위치(인터페이스)를 켬

- ctrl + space로 자동완성 기능을 활성화 하면 사용가능 멤버들과 사용법을 알수있다

- API 설명서 만드는 방법 : /** + enter 치면 생성한 메서드의 설명서를 작성하는 툴이 나온다
- 오라클에서는 사용자를 위해 미리 만들어둔 클래스를 확인하기 위해 우리는 api문서를 참고한다
- https://docs.oracle.com/javase/9/docs/api/overview-summary.html
- 면접때 이런 용어 많이 물어보는데 풀네임으로 잘 외워놔라

7. 클래스 멤버



- 클래스 멤버에는 constructor(생성자), 필드, 메서드가 있다.

8. 생성자(constrcutor)


- 5 , 6 : 필드네임
- Robot이라는 생성자를 생성했다
- 생성자는 클래스를 객체화 해주고 객체화 되면서 가장 먼저 실행된다
- 위의 설명대로 이 클래스를 다른 메인함수에서 실행할경우 9줄이 먼저 실행된다.
- 그래서 객체화 할 때 초기화 하는 수단으로 자주 활용 된다.
	○ 초기화는 0을 만드는 것이 아니고 최초의 값을 주는것이다.

- 9 : Robot을 객체화 하는데 위에서 생성한 생성자를 호출한 것이다
- 출력값 : 

9. 생성자 overload


- 같은 이름으로 여러 개의 생성자를 만드 것을 생성자 overload라고 한다.
- 단, 매개변수의 개수나 타입이 달라야 한다.
- 객체화를 시킬 때 하나의 이름으로 이것저것 가능
- 16 : 위의 경고는 price를 어디서 가져와야 할지 몰라서 생기는 경고이다.
	○ 20 , 21 : 변수의 이름을 바꿔서 대입
	○ 25,  26 : 앞에 변수에 this.를 붙여준다. 이 방법을 더 많이쓴다.
- 위의 예시는 각각 매개변수의 개수나 타입이 다르므로 생성자가 정상적으로 만들어 졌다. 
- 면접 때 많이 물어봄 ( overload랑 override차이 )

좋은 웹페이지 즐겨찾기