728x90
1. 메소드 오버로딩
- 같은 이름의 메소드를 여러 번 선언
- 매개변수의 타입이나, 개수가 달라야 한다.
- 매번 메소드를 호출할 때마다 값을 넣어주지 않고 고정 하고 싶다면 info(값) 처럼 작성할 수 있음
void info(String manufacture, int capacity){
System.out.println("휴대폰 제조사는 " + manufacture + " 입니다");
System.out.println("휴대폰 용량은 " + capacity + "GB 입니다");
}
void info(){
info("애플", 256); // 위의 info 메소드 호출
}
2. 클래스 메소드
static void serviceCenter(){
System.out.println("서비스 센터의 전화번호는 02-1234-1234 입니다");
}
// 사용법
클래스이름.메소드이름(); // 호출 가능
- static이 붙지 않은 메소드는 객체마다 서로 다른 동작을 한다.(인스턴스 변수의 값이 다르기 때문에)
- static이 붙은 클래스 메소드는 항상 같은 동작만 한다.
- 객체를 생성하지 않더라도 호출할 수 있다.
- 메소드 내에서 인스턴스 변수가 사용되지 않을 경우,
- 전달 받은 값만 처리하고 반환하려고 할때 클래스 메소드를 사용한다.
3. This
public class Phone {
String name;
void phoneInfo(String name){
this.name += name;
}
}
public static void main(String[] args){
Phone phone = new Phone();
phone.name = "아이폰14Pro";
phone.phonInfo(" 2023년형");
}
// 출력 결과 ==> 아이폰14Pro 2023년형
- 객체, 자기 자신을 나타낸다
- this.name은 클래스 인스턴스 변수로 선언된 name을 말한다.
- name은 전달 값으로 전달 받은 String name을 나타낸다.
4. 생성자(Constructor)
- new연산자를 통해 인스턴스가 생성될 때 호출되고 제일 먼저 실행되는 메서드
- 인스턴스 변수를 초기화 시키는 역할을 한다.
- new 연산자가 인스턴스 생성 하는 것 (생성자가 인스턴스 생성하는 것은 아님!)
- 생성자가 정의 되어 있지 않을 경우 컴파일러가 알아서 기본 생성자를 추가해서 컴파일 한다.
// 클래스이름(){}
Phone(){ // 기본 생성자
}
// 클래스이름(매개변수){}
Phone(String name, int capacity){ // 매개변수가 있는 생성자
this.name = name;
this.capacity = capacity;
}
5. Getter & Setter
- OOP에서는 객체 외부에서 직접적인 접근을 막는다.
- 외부에서 데이터를 읽고 변경 시 객체의 무결성이 깨질 수 있기 때문
- 메소드를 통해 데이터를 변경한다.
- 접근제어자 private은 해당 클래스 내에서만 접근 가능함
- Setter : private으로 선언된 변수의 값을 수정할때 사용
- Getter : 데이터를 읽어올때 사용
class Phone(){
private String name;
private int capacity;
public String getName(){
return name;
}
public String setName(String name){
this.name = name;
}
public int getcapacity(){
return capacity;
}
public int setcapacity(int capacity){
this.capacity = capacity;
}
}
public static void main(String[] args){
Phone phone = new Phone();
phone.setName("아이폰14Pro Max");
phone.setCapacity(512);
System.out.println("이름 : " + phone.getName());
System.out.println("용량 : " + phone.getCapacity() + "GB");
}
728x90
'Java' 카테고리의 다른 글
클래스 - 샌드위치 만들기 (0) | 2023.06.07 |
---|---|
클래스 - 3 (0) | 2023.06.07 |
클래스 - 1 (0) | 2023.06.07 |
메소드 - 개인정보 일부 비공개 하기 (0) | 2023.06.07 |
배열 - 신발 사이즈 옵션 출력하기 (0) | 2023.06.07 |