1. 클래스
객체를 정의해 놓은 것. 객체를 생성하는데 사용한다.
실제로 존재하는 사물인 객체를 프로토타입으로 명세화 시킨 것이 클래스이다.
* 구성 요소
ㄱ. 클래스 헤더 : 클래스명
클래스 선언부. class라는 예약어를 중심으로 오른쪽은 클래스명이고, 왼쪽은 접근 제한자와
클래스의 형태, 클래스의 종류를 나타냄.
ㄴ. 멤버 필드 : 변수, 상수 등의 속성
객체가 만들어질 때 해당 객체의 특징적 속성을 담게 됨.
ㄷ. 멤버 메소드 : 동작하는 메소드
메소드는 특정한 기능을 수행하는 행위를 의미함
2. 객체
실제로 존재하는 사물, 또는 실제로 존재하는 개념 등.
속성과 기능의 집합. 이 두 개를 객체의 멤버라고 부른다.
속성과 기능에 따라 용도는 천차만별로 달라질 수 있고, 정의된 클래스로 객체를 생성할 수 있다.
3. 인스턴스
객체 > 인스턴스.
클래스로부터 인스턴스를 생성하여 인스턴스화 시킨다고 말할 수 있다.
클래스 -> 인스턴스화 -> 인스턴스
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 |
//Human 클래스
public class Human {
// 변수 선언
String name;
String gender;
int age;
public Human() { }
public Human(String name) {
this.name = name;
}
public Human(String name, String gender, int age) {
this.name = name;
this.gender = gender;
this.age = age;
}
public void eat(String some) {
System.out.println("console> age : " + age +
", name : " + name + ", some : " + some + "을 먹는 중.");
}
public void sleep() {
System.out.println("console> age : " + age +
", name : " + name + "이가 자는 중.");
}
}
//HumanMain 클래스
public class HumanMain {
public static void main(String[] args) {
// Human이라는 클래스 주소를 human이라는 이름의 인스턴스에 주소값을 복사하여 객체화함
Human human = new Human();
human.name = "사람1";
human.gender = "여";
human.age = 100;
human.eat("과자");
human.sleep();
Human human1 = new Human("사람2", "남", 99);
Human human2 = new Human("사람3");
human1.eat("껌");
human2.eat("커피");
}
} |
cs |
'BackEnd > Java' 카테고리의 다른 글
AWT vs 스윙 (Swing) (0) | 2017.02.10 |
---|---|
람다식과 함수형 프로그래밍 (Java 8.0 이상) (0) | 2017.02.09 |
Java :: startsWith() vs indexOf() vs charAt() (0) | 2016.12.26 |
Java :: Reflection 리플렉션 (0) | 2016.12.18 |
Java :: Exception 예외처리 (0) | 2016.12.15 |