java/ㄴ CHAPTER 6. 객체지향 프로그래밍 1
-
CHAPTER 6. (7) this란? (this(), 명시적 초기화 포함) ★java/ㄴ CHAPTER 6. 객체지향 프로그래밍 1 2020. 3. 23. 19:19
this() - 생성자 안에서 다른 생성자 호출 조건 - 생성자 이름으로 클래스이름 대신 this 사용 - 호출 시 반드시 첫 줄에서만 호출 가능 ex. ★ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 public class Car2 { String color; String gearType; int door; Car2() { this("white", "auto", 4); } Car2(String color) { this(color, "auto", 4); } Car2(String color, String gearType, int door) { this.color = color; this.gearType = gearType; this.door = door; } ..
-
CHAPTER 6. (6) 생성자란?java/ㄴ CHAPTER 6. 객체지향 프로그래밍 1 2020. 3. 23. 19:15
생성자 - 인스턴스 생성 시 호출되는 인스턴스 초기화 메서드 특징 - 메서드와 유사한 구조 - 리턴 값 없음 - void 사용하지 않음 (모든 생성자가 리턴값이 없기 때문에 void도 생략) - 클래스의 이름과 같음 ex. 1 2 3 4 5 6 7 8 9 10 class Point { Point() { // 매개변수 없는 기본 생성자 } Point(int a) { // 매개변수 있는 생성자 } } 주의 - 연산자 new가 인스턴스를 생성하는 것 (생성자가 인스턴스를 생성하는 것이 아님) 기본 생성자 default constructor - 매개변수도 없고 아무런 내용도 없는 것 - 모든 클래스에 반드시 하나 이상의 생성자 정의되어 있어야 함 지금까지 안적었는데? ㄴ 소스파일 클래스에 생성자가 하나도 정의되..
-
CHAPTER 6. (5) 오버로딩이란? ★java/ㄴ CHAPTER 6. 객체지향 프로그래밍 1 2020. 3. 23. 19:12
오버로딩 - 클래스 내에 같은 이름의 메서드가 중복되더라도 매개변수 개수, 타입이 다르면 중복 정의 가능 조건 1. 메서드 이름이 같아야 함 2. 매개변수의 개수, 타입이 달라야 함 주의 ★ - 이름만 다를 뿐 매개변수 타입 같으면 오류 ex. int add (int x, int y) int add (int a, int b) - 리턴 타입만 다른 경우 오류 (어떤 메서드 호출될 것인지 결정 불가) ex. int add (int a, int b) {return int} long add (int a, int b) {return long} - 매개변수 순서가 다른 경우 오버로딩으로 간주 (호출 시 매개변수 값에 의해 메서드 구분 가능) ex. long add (int a, long b) long add (lo..
-
CHAPTER 6. (4) return문이란? (호출 스택, Call by Value, Call by Reference 등 포함) ★★java/ㄴ CHAPTER 6. 객체지향 프로그래밍 1 2020. 3. 23. 19:11
return문 - 현재 실행중인 메서드 종료, 호출한 메서드로 복귀 - 모든 메서드는 적어도 하나의 return문 필요 void는 필요 없던데? - 지금까지 컴파일러가 메서드 마지막에 return; 을 자동 추가했었음 호출스택 - 메서드의 작업에 필요한 메모리 공간 제공 호출된 메서드를 위한 메모리가 할당됨 (메모리는 지역변수, 연산의 중간 결과 등을 저장하는데 사용됨) = 메서드가 작업을 마치면 할당되었던 메모리 공간 반환됨 ★★ 기본형 매개변수 Call by Value - 메서드의 매개변수에 기본 자료형 값을 전달해서 메서드를 실행 // 메서드엔 값의 복사본이 전달됨 = 원본에 아무런 영향이 없음 -> 기본형 매개변수는 변수에 저장된 값을 읽을 수만 있음 (변경 불가) = 호출된 메서드에서 전달받은 ..
-
CHAPTER 6. (3) 멤버 변수란? (지역, 인스턴스, 클래스 변수, 메서드 포함)java/ㄴ CHAPTER 6. 객체지향 프로그래밍 1 2020. 3. 23. 19:08
멤버변수 - 클래스 변수 (static이 붙은 것) - 인스턴스 변수 (static이 붙지 않은 것) 인스턴스 변수 - 인스턴스 생성시 만들어짐 - 사용하려면 먼저 인스턴스를 생성해야 함 - 별도의 저장공간을 가짐 (인스턴스 변수마다 서로 다른 값을 가짐) ex.int iv; 카드의 색깔, 무늬 클래스 변수 - 인스턴스 변수 앞에 static을 붙임 - ★ 한 클래스의 모든 인스턴스들이 공통된 값을 유지해야하는 속성을 클래스 변수로 선언함 ex.static int iv; 카드들의 공통된 넓이, 폭 지역변수 - 멤버변수를 제외한 나머지 변수 - 메서드 내에서 선언, 메서드 내에서만 사용 가능 - 메서드 종료 시 소멸 (사용 불가) 메서드 - 특정 작업을 수행하는 일련의 수행문들을 하나로 묶은 것 - 선언부..
-
CHAPTER 6. (2) 객체 배열이란? (변수, 객체, 클래스, 사용자 정의 타입 포함)java/ㄴ CHAPTER 6. 객체지향 프로그래밍 1 2020. 3. 23. 19:05
객체 배열 - 참조변수들을 하나로 묶은 참조변수 배열 (객체가 저장되는 것이 아니고, 객체의 주소가 저장됨) TV[] tvArr = new TV[3]; ㄴ 객체 배열 생성한 것 뿐, 아직 객체가 저장되지 않음 ex. tvArr[0] = new TV(); tvArr[1] = new TV(); tvArr[2] = new TV(); ★ 다뤄야 할 객체가 많을 때는 for문 사용 ex. TV tvArr = new TV[100]; for(int i=0; i
-
CHAPTER 6. (1) 객체지향 언어란? (클래스, 객체, 인스턴스 포함)java/ㄴ CHAPTER 6. 객체지향 프로그래밍 1 2020. 3. 23. 19:03
객체지향 언어 - 기존 프로그래밍 언어에 새로운 규칙을 추가 특징 - 코드 재사용성 높음(생산 효율 증가) - 코드 관리 용이(절차지향에 비해 유지보수 쉬움) - 신뢰성 높은 프로그래밍 (코드의 중복 제거, 오동작 방지) 장점 - 재사용성, 유지보수, 중복된 코드 제거 = 프로그램 개발, 유지보수에 드는 시간 비용을 획기적으로 개선 클래스 - 객체의 설계도 (ex.붕어빵틀) 객체 - 클래스에 정의된 내용대로 메모리에 생성된 것 (ex.붕어빵) 클래스와 객체의 관계 = 제품 설계도와 제품의 관계 프로그래밍 순서 1. 클래스 작성 2. 클래스로부터 객체 생성 3. 객체 사용 왜? ㄴ 클래스를 잘 만들어 놓으면 객체 생성이 쉬워지기 때문 객체 구성요소 - 속성property (ex.크기, 길이, 높이, 색상 ..