일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 로봇청소기
- 바로꺼짐
- ChromeStandaloneSetup64안됨
- 크롬 설치 안됨
- chromeSetup.exe 안됨
- 크롬설치파일꺼짐
- 연산자 끼워넣기
- C++
- 삼성 sw 역량테스트
- 크롬설치
- 백준 14888번
- chromeSetup.exe꺼짐
- 백준 14503번
- Today
- Total
공대생의 개발 일기장
ch06 객체지향프로그래밍1 본문
https://github.com/SeoKyung0221/Java-study
GitHub - SeoKyung0221/Java-study
Contribute to SeoKyung0221/Java-study development by creating an account on GitHub.
github.com
오랜만에 자바를 업로드 했다. 그동안 C++을 새로 공부하고 코딩테스트의 준비를 하면서 CS도 한번 흝고 개강준비다 뭐다.... 핑계가 많았다.
그래서 월요일을 기준으로 일주일마다 자바를 한 챕터씩 끝내기로 했다. 당연히 일주일 분량을 하루만에 할 건 아니고 일주일로 나누어서 진행하게 될 것이다. 따라서 Java 공부의 글 업로드 주기도 월요일이 될 것이다.
늘 그렇듯 GitHub에 코드가 업로드 되었다. 확인하고 싶은 사람은 확인하면 좋을 것 같다. 내 개인공부로는 추후 연습 문제를 다시 풀어볼 때 사용할 것 같다. 여기에서는 햇갈렸거나 새로 알았던 부분만 빠르게 정리한다.
객체지향언어의 특징
- 코드의 재사용성이 높고 관리가 쉬워진다. 즉, 신뢰성이 높은 프로그램의 개발이 가능하게 된다.
클래스와 객체 그리고 인스턴스
-클래스는 객체를 정의한 것(객체의 설계도), 객체는 실제로 존재하는 어떤 사물 또는 개념이라고 보면 된다.
-(객체 > 인스턴스)이다. 즉, 객체가 인스턴스의 조금 넓은 범위라고 보면 된다. 보통은 자바에서는 인스턴스라는 표현을 많이 쓴다. 클래스로부터 인스턴스화를 통해 생성된 것을 인스턴스라고 한다. (C++을 배울 때는 이런 부분을 전부 객체라고 배워서 살짝 햇갈렸었다.)
-객체는 속성과 기능으로 이루어져 있다. 속성은 내가 아는 멤버 변수, 기능은 메서드(멤버함수)이다.
Tv t = new Tv(); // 객체 생성 후, t라는 참조변수에 객체의 주소 저장.
t는 참조변수임을 명심하자.
변수와 메서드
-static이 붙은 표현이 매우 중요해진다. static의 유무에 따라 변수는 클래스 변수(static), 인스턴스 변수 / 메서드는 클래스 메서드(static), 인스턴스 메서드로 나뉘게 된다.
- C++을 배울 때에는 static을 변수 앞에 붙임으로서 전역에서 사용할 수 있는 변수로 탈바꿈한다고 배웠는데 비슷한 개념이라고 보면된다. 즉, static이 붙은 클래스 변수와 메서드의 경우 '객체가 생성되지 않아도' 사용할 수 있다. 그런데 여기서 주의할 점은 객체가 생성되지 않아도 사용할 수 있기 때문에 인스턴스 변수 혹은 인스턴스 메서드를 static이 붙은 변수와 메서드에서는 사용할 수 없게 된다.
오버로딩
- 반환타입은 오버로딩에 영향을 주지 않는다. 오버로딩에 영향을 주는 것은 매개변수의 타입과 개수이다.
생성자
- constructor는 변수를 초기화 해주는 역할을 한다. 기본적으로 유저가 생성하지 않으면 컴파일러가 자동적으로 기본 생성자를 생성해준다.
-this()를 이용해 다른 생성자를 호출하거나, 참조변수 this를 이용해 인스턴스 자신을 가리키는 것으로 사용할 수 있다. this()와 this는 다른 것이다. 예는 다음 코드와 같다.
Car() {
this("white", "auto", 4);
}
Car(String color, String gearType, int door){
this.color = color; // this.color의 color는 인스턴스 변수, 우변의 color은 매개변수의 지역변수
this.gearType = gearType;
this.door = door;
}
초기화
-초기화는 기본값(자동으로 컴파일러가 지정해주는), 명시적 초기화( int x =0 ), 초기화 블럭( { } )이 있다.
-클래스 초기화의 경우 기본값 -> 명시적 초기화 -> 클래스 초기화 블럭
-인스턴스 초기화의 경우 기본값 -> 명시적 초기화 -> 인스턴스 초기화 블럭 -> 생성자의 순으로 초기화 된다.
-참고로 클래스 변수는 클래스가 처음 로딩될 때 한번만, 인스턴스 변수는 인스턴스가 생성될 때마다 계속 초기화 된다.
'Java 공부' 카테고리의 다른 글
ch08 예외처리 (0) | 2023.04.11 |
---|---|
ch07 객체지향프로그래밍2 (0) | 2023.03.23 |
ch05 배열 (0) | 2023.02.26 |
ch04 조건문과 반복문 (1) | 2023.02.19 |
ch03 연산자 - 연습문제 풀이 (0) | 2023.02.08 |