티스토리 뷰
[클래스 정의하는 법]
1) 클래스 정의
- 클래스 정의는 class라는 키워드를 사용한다.
- 클래스가 다른 클래스를 상속하고 있을 경우 extends 키워드를 사용한다.
- 만약 클래스가 하나 이상의 인터페이스를 구현 해야하는 경우 implements 키워드를 사용한다.
2) 선언 방법
// 1) 변수명 = new 클래스();
Product p;
p = new Product();
// 2) 클래스 변수명 = new 클래스();
Product p = new Product();
2) 클래스의 구성 멤버
- 필드(field): 객체의 데이터가 저장되는 곳이다. 선언 형태는 변수 선언과 비슷하지만, 변수는 생성자와 메소드 내에서만 사용되고 생성자와 메소드가 실행 종료되면 자동 소멸된다. 하지만 필드는 생성자와 메소드 전체에서 사용되며 객체가 소멸되지 않는 한 객체와 함께 존재한다.
- 생성자(constructor): 생성자는 객체 생성 시 초기화를 담당한다. 필드를 초기화 하거나, 메소드를 호출하여 객체를 사용할 준비를 한다. 생성자는 메소드와 비슷하게 생겼지만, 클래스 이름으로 되어있고 리턴 타입이 없다.
- 생성자는 반환 값이 없지만, 반환 값을 void 형으로 선언하지 않는다.
- 생성자는 초기화를 위한 데이터를 인수로 전달 받을 수 있다.
- 객체를 초기화 하는 방법이 여러 개 존재할 경우 하나의 클래스가 여러 개의 생성자를 가질 수 있다. 즉, 오버로딩이 가능하다.
class Toy {
// 생성자 정의
public Toy() {
}
}
public class Toy {
private String name;
private int price;
public Toy(String name, int price) { // 파라미터가 있는 생성자
this.name = name;
this.price = price;
}
}
- 메소드(method): 객체의 동작을 수행하는 블록이다. 즉, 어떠한 작업을 수행하기 위한 명령문의 집합이다.
// 문법
접근제어자 반환타입 메소드이름 (매개변수 목록) {// 선언부
// 구현부
}
- 접근제어자: 해당 메소드에 접근할 수 있는 범위 명시
- 반환 타입(return type): 메소드가 모든 작업을 마치고 반환하는 데이터의 타입을 명시
- 매개변수 목록(parameters): 메소드 호출 시에 전달되는 인수의 값을 저장할 변수들을 명시
- 구현부: 메소드의 고유 기능을 수행하는 명령문의 집합
public class Toy {
private String name;
private int price;
public Toy(String name, int price) { // 파라미터가 있는 생성자
this.name = name;
this.price = price;
}
public void print(){ // 선언부
System.out.println(name +"의 가격은" + price + "입니다." ); //구현부
}
}
3) this 키워드
this 참조 변수는 인스턴스가 바로 자기 자신을 참조하는데 사용하는 변수이다. 이러한 this 참조 변수는 해당 인스턴스의 주소를 가리키고 있다.
Car(String modelName, int modelYear, String color, int maxSpeeds) {
this.modelName = modelName;
this.modelYear = modelYear;
this.color = color;
this.maxSpeed = maxSpeed;
this.currentSpeed = 0;
}
- 생성자의 매개변수 이름과 인스턴스 변수의 이름이 같을 경우 인스턴스 변수 앞에 this 키워드를 붙여 구분해 준다.
- 이러한 this 참조 변수를 사용할 수 있는 영역은 인스턴스 메소드 뿐이며, 클래스 메소드에서는 사용할 수 없다.
'Study > Java' 카테고리의 다른 글
[스터디 7주차] package 키워드 (0) | 2022.01.22 |
---|---|
[스터디 6주차] 상속 (0) | 2022.01.16 |
[스터디 4주차] Queue (0) | 2022.01.02 |
[스터디 4주차] LinkedList로 Stack 구현 (0) | 2022.01.02 |
[스터디 4주차] Stack (0) | 2022.01.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 프로그래머스
- 스터디
- 연결리스트활용
- CS 스터디
- 운영체제
- 리스트 복사
- https
- It
- 보험
- Greedy sort
- 데이터베이스
- 네트워크
- 리스트2
- SW
- 정렬
- 알고리즘
- CS
- 자바
- 이진탐색
- 프로세스 주소공간
- 이차 리스트
- 완전탐색
- 프로그래머스강의
- 자료구조
- 리스트
- 리스트함축
- CS.
- 파이썬
- 자료구조와알고리즘 23강
- 코드업 기초
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함