[Java] 클래스

소이뎁·2023년 10월 10일
0

Java

목록 보기
13/26
post-thumbnail

📍 클래스와 인스턴스의 메모리 저장

📍 클래스

  • 클래스는 자료형이다.
  • 클래스에는 필드와 메소드(생성자, 일반)를 입력할 수 있다.
  • 필드에 값을 넣는 방법은 생성자, setter가 있다.
  • 필드에서 값을 꺼내는 방법은 일반 메소드, getter가 있다.
  • 생성자를 정의하지 않을 경우에만, 파라미터가 없는 기본 생성자가 내부적으로 생성된다.

일반적으로

  • 필드를 해당 클래스 안에서 사용할 때는 this를 붙인다.
  • 필드 앞에 private을 붙여 은닉화(Hiding)한다.
  • 생성자, setter, getter 앞에 public을 붙여 외부에서 사용 가능하게 한다.

📍 필드에 값을 넣는 방법은 생성자, setter가 있다.

  • 생성자: setter가 없다면 수정 불가
  • setter: 수정 가능

1) 생성자로 필드 값 넣기

생성자(Constructor)

  • 객체가 생성될 때 호출되는 메소드이다.
  • 리턴 타입이 존재하지 않는다.
  • 클래스 명과 동일한 이름을 갖는다.
// 🟢 Person Class
package lesson02.ex1;

public class Person {
	// 필드
	private String name;
	private int age;
	
	// 메소드
	// 생성자
	public Person(String name, int age) {
		this.name = name;
		this.age = age;
		System.out.println("필드 초기화 완료");
	}
	
	// 일반
	void printName() {
		System.out.println(this.name);
	}
	
	void printAge() {
		System.out.println(this.age);
	}
}
// 🟢 PersonTest Class (Main Class)
package lesson02.ex1;

public class PersonTest {

	public static void main(String[] args) {
		Person p1 = new Person("홍길동", 30);
        
		p1.printName();
		p1.printAge();
	}

}

2) setter로 필드 값 넣기

// 🟢 Person Class
package lesson02.ex2;

public class Person {
	// 필드
	private String name;
	private int age;
	
    // 메소드
	// setter
	public void setName(String name) {
		this.name = name;
	}
	
	public void setAge(int age) {
		this.age = age;
	}
	
    // 그 외 일반 메소드
	void printName() {
		System.out.println(this.name);
	}
	
	void printAge() {
		System.out.println(this.age);
	}
}
// 🟢 PersonTest Class (Main Class)
package lesson02.ex2;

public class PersonTest {

	public static void main(String[] args) {
		Person p1 = new Person();
		p1.setName("홍길동");
		p1.setAge(30);
        
		p1.printName();
		p1.printAge();
	}

}

0개의 댓글