728x90
1. 클래스 (Class)
- 객체 지향 프로그래밍에서 특정 객체를 생성하기 위해 변수와 메소드를 정의하는 일종의 틀을 의미
- 객체를 조금 더 효율적으로 생성하기 위해 만들어진 구문
2. 객체 (Object)
- 클래스에 정의된 내용대로 메모리에 생성된 것
3. 객체의 선언 및 생성(메모리 할당)
- 객체 변수 선언 : 클래스명 객체명;
- 객체 변수 생성 : 객체명 = new 클래스명();
- 객체의 선언과 생성은 한 줄로도 표현 가능
4. 인스턴스 변수 사용과 접근
- 클래스에서 정의한 변수
- 인스턴스 변수는 각각의 독립된 공간을 가짐
- 예) Product p1 = new Product();
-> p1에서 사용되는 변수는 같은 이름의 변수라도 독립된 공간을 가지기 때문에 출력되는 값이 다름
- 예) Product p1 = new Product();
5. 메소드 (Method)
- 클래스 내에서 정의된 함수
6. 메소드 호출
- 객체 변수의 뒤에 점(.)을 하고 함수이름 입력
- 메소드의 파라미터가 존재 할 경우, 파라미터의 수에 맞춰 호출
public class Product {
// 변수인데 클래스 안에 있는 변수 : 멤버변수라 하고
// 이 변수들은 Heap 메모리에 생긴다!!!!
int number;
String name;
// 클래스는 메소드도 있다.
// 아래처럼 출력하는 함수를 만든다.
// 제품 번호 : 1이고 , 제품명 : 컴퓨터
void print() {
System.out.println("제품 번호 : "+number+" , 제품명 :"+name);
}
}
public class ProductMain {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i = 3;
// 클래스를 가지고 실제로 데이터를 만든다 => 객체 생성!
// 클래스 :틀, 객체 : 실제 메모리에 올라가는 것.
Product p1 = new Product();
// 객체에 데이터를 저장한다.
// 제품 번호는 1, 제품명은 컴퓨터
p1.number = 1;
p1.name = "컴퓨터";
// 제품번호는 2, 제품명은 TV
Product p2 = new Product();
p2.number = 2;
p2.name = "TV";
// 데이터 억세스
// p1의 제품명을 출력하세요.
System.out.println(p1.name);
// p2의 제품명을 출력하세요.
System.out.println(p2.name);
// 출력을 이렇게 하고싶다.
// 제품 번호 : 1이고 , 제품명 : 컴퓨터
System.out.println("제품 번호 : "+p1.number+" , 제품명 : "+p1.name);
System.out.println("제품 번호 : "+p2.number+" , 제품명 : "+p2.name);
// 출력을 이렇게 하고싶다.
// 제품 번호 : 1이고 , 제품명 : 컴퓨터
p1.print();
p2.print();
}
}
위 코드의 메모리 상태를 그림으로 표현해봤다.
'Java' 카테고리의 다른 글
Java - 메소드 오버로딩 (Method Overloading) (0) | 2023.01.18 |
---|---|
Java - Static (전역변수)와 메모리의 data영역 (0) | 2023.01.18 |
Java - 함수의 정의 ( 데이터타입, 함수명, 파라미터 ) (0) | 2023.01.18 |
Java - 배열 (선언과 생성, 사용 방법,데이터 억세스,배열의 길이 구하는 방법 length) (0) | 2023.01.18 |
Java - 반복문 사용 방법 (for/while) (0) | 2023.01.18 |