늦은 프로그래밍 이야기
객체지향 (1) 클래스, 인스턴스, 메소드, 생성자 본문
객체지향 (Object Oriented)
- 클래스와 객체에 바탕을 둔 프로그램 개발 방법
클래스 (Class)
클래스
- 공통 속성을 한 군데에 정의해 놓은 것
- 사물의 상태 및 특성, 그에 관련된 기능을 정리하여 프로그램으로 표현
class 클래스명 {
멤버
}
멤버 (Member)
- 멤버 : 클래스 내부의 정보 (필드와 메소드)
필드 (Field)
- 필드 : 상태 및 특성을 표현하기 위한 수단
class Phone { // 클래스
String model;
String color; // 필드
int price;
}
인스턴스 (Instance)
- 인스턴스 : 클래스로부터 만들어진 객체
인스턴스 생성
클래스명 변수명 = new 클래스명();
Phone galaxy = new Phone();
galaxy.model = "Galaxy10";
galaxy.color = "Black";
galaxy.price = 100;
인스턴스의 멤버에 접근할 때
인스턴스명.멤버변수
galaxy.model = "Galaxy10";
메소드 (Method)
- 메소드 : 클래스의 기능을 표현하기 위한 수단.
- 어떠한 작업을 수행하는 코드를 하나로 묶어 놓은 것.
- 반복적으로 재사용 가능. 중복된 코드를 제거하여 효율적인 코드작성. 프로그램 구조화.
- 메소드의 이름은 동사로 시작해야 하고, Camel Case를 사용한다.
메소드 정의하기
- 클래스 내부에 작성.
리턴값의형 메소드명(인수목록) {
문장;
...
return 식;
}
int add(int x, int y) {
int result = x + y;
return result;
}
- 메소드 내의 변수(x, y)는 지역변수로서 메소드 내부에서만 사용할 수 있다.
메소드 호출하기
인스턴스명.메소드명(인수목록);
int addResult = calculation.add(100, 90);
- 가인수(parameter) : 메소드에 선언되어 있는 인수(변수)
- 실인수(argument) : 메소드 호출시 전달되는 인수(값)
- 여기서 가인수는 위의 x, y이고, 실인수는 100, 90이다.
생성자 (Constructor)
- 인스턴스가 생성될 때 사용.
- 인스턴스 초기화 메소드
생성자 정의하기
클래스이름 (타입 변수명, 타입 변수명, ...){
인스턴스 생성 될 때에 수행하여할 코드
변수의 초기화 코드
}
- 클래스 내부에서 Command + N으로 생성가능.
- 생성자를 작성하지 않을 경우 자바 컴파일러가 기본 생성자를 추가
- 생성자 조건
1) 생성자의 이름은 클래스명과 같아야 한다.
2) 생성자는 리턴 값이 없다.
class Phone { // 클래스
String model;
String color; // 필드
int price;
// 인수가 없는 생성자
Phone() {
model = "iphone";
color = "black";
price = 100
}
// 인수를 3개 가지는 생성자
Phone(String model, String color, int price) {
this.model = model;
this.color = color;
this.price = price;
}
}
생성자 호출하기
- 인스턴스를 생성할 때 초기 값을 설정하는 것이어서 인스턴스 생성과 방법이 동일하다.
클래스명 객체변수명 = new 클래스명(인수목록);
Phone galaxy = new Phone("Galaxy10", "Black", 100);
'내일배움캠프 > Java 기초' 카테고리의 다른 글
| 객체지향 (3) 추상클래스, 인터페이스 (0) | 2022.11.16 |
|---|---|
| 객체지향 (2) 상속, 접근제어자 (1) | 2022.11.15 |
| 자주 발생하는 에러, 해결방법 (0) | 2022.11.14 |
| 조건문, 반복문 (0) | 2022.11.14 |
| 연산자 (0) | 2022.11.07 |
Comments