클래스(Class)
📌 클래스(Class)
: 데이터(Data) + 메소드(Method)
데이터(Data) : 프로그램 상 유지, 관리해야 하는 데이터.
메소드(Method) : 데이터를 처리, 조작하는 기능.
📌 보통 자바에서는 클래스 이름을 설정할 때, 첫 문자는 대문자로 시작함.
둘 이상의 단어를 사용할 때는 대문자로 구분지어 사용함.
📌 참조 자료형(reference data type)
: 클래스 형으로 선언하는 자료형.
예. String 등
인스턴스
📌 인스턴스
: 클래스에 정의죈 변수와 메소드를 담고 있는 것.
만들어지고 실제 메모리 공간에 존재함.
== 객체
📌 인스턴스 변수
: 클래스 내에 선언된 변수.
== 멤버 변수 == 필드(Fields)
📌 인스턴스 메소드
: 클래스 내에 정의된 메소드.
📌 인스턴스 변수는 같은 클래스 내에 위치한 메소드 내에서 접근이 가능함.
참조 변수(Reference Variable)
📌 참조 변수(Reference Variable)
: 인스턴스를 참조할 수 있는(가리키고 있는) 것.
📌 new
: 새로 생성되는 인스턴스(객체)를 생성해, 생성된 인스턴스의 주솟값을 반환함.
참조 변수에 새로 생성된 인스턴스(객체)의 주솟값이 저장됨.
📌 참조 변수는 참조하는 인스턴스(객체)를 바꿀 수 있음.
📌 참조 변수에 null을 대입해 참조하는 인스턴스(객체)와의 관계를 끊을 수 있음.
예시
📄 Student 클래스 생성
package test;
class Student {
// 인스턴스(객체) 변수
int id;
String name;
int birth;
String phoneNumber;
// 디폴트 생성자
public Student() {}
// 생성자
public Student(int s_id, String s_name, int s_birth, String s_phoneNumber) {
id = s_id;
name = s_name;
birth = s_birth;
phoneNumber = s_phoneNumber;
}
// 인스턴스(객체) 메소드
public void printInfo() {
System.out.println(id + " " + name + " " + birth + " " + phoneNumber);
}
}
public class Test {
public static void main(String[] args) {
// 참조 변수 선언하고 새로운 인스턴스(객체) 생성.
Student jin = new Student(1, "jin", 19921204, "010-1234-5678");
Student jimin = new Student(2, "jimin", 19951013, "010-9876-5432");
Student jun = new Student(3, "jun", 19960610, "010-5555-1111");
jin.printInfo(); // 1 jin 19921204 010-1234-5678
jimin.printInfo(); // 2 jimin 19951013 010-9876-5432
jun.printInfo(); // 3 jun 19960610 010-5555-1111
jun = jimin; // 참조 변수는 참조하는 인스턴스(객체)를 바꿀 수 있음.
jun.name = "jun";
jun.printInfo(); // 2 jun 19951013 010-9876-5432
}
}
💡 생성자와 디폴트 생성자
https://codingrecord2209.tistory.com/177
[Java] 생성자와 디폴트 생성자
생성자 📌생성자(Constructor) : 인스턴스(객체) 생성 시 자동으로 호출되는 메소드. 📌 생성자의 이름은 클래스 이름과 동일해야 함. 📌 생성자는 값을 반환하지 않고, 반환형을 표시하지 않음.
codingrecord2209.tistory.com
'Java > Java' 카테고리의 다른 글
[Java] 정보 은닉(Information Hiding)과 접근 수준 지시자(Access-level Modifiers) (0) | 2022.10.13 |
---|---|
[Java] 생성자(Constructor)와 디폴트 생성자(Default Constructor) (0) | 2022.10.13 |
[Java] 메소드와 변수의 스코프(Scope) (0) | 2022.10.13 |
[Java] break문과 continue문 (0) | 2022.10.13 |
[Java] 반복문 (0) | 2022.10.13 |
댓글