728x90
자바는 대표적인 객체지향 프로그래밍 언어라고 한다. 그런데 여기서의 객체란 무엇일까?
- '객체(Object)' 의 정의
자바에서의 '객체' 개념을 이해하기에 앞서, 우리가 사는 세상에서의 '객체'는 우리가 표현할 수 있는 실제 세계의 모든 사물들을 뜻한다. 이는 눈에 보이고 만져지는 <물리적인 객체>와 보이지 않고 만져지지 않는 <개념적인 객체> 개념으로 나눌 수 있다.
개념적인 객체 | 물리적인 객체 |
동물 | 고양이, 토끼, 호랑이, 사자... |
필기구 | 연필, 샤프, 사인펜... |
자동차 | K5, SM5... |
- '클래스(Class)' 의 정의
클래스란 객체와 관련된 데이터와 처리 동작들의 모음을 뜻한다. 쉽게 말해 객체에 대한 '설계도' 라고 볼 수 있다.
클래스가 실체화된 것이 객체(object)라고 하며, 이를 실체화 하는 작업은 "오브젝트를 생성한다" 또는 "인스턴스화 한다" 등으로 표현한다.
package javastudy;
class Poketmon{ // 클래스명:Poketmon
// 필드(=멤버변수)
String name;
int power;
// 메서드 : 객체의 동작 정의
void attack(){
System.out.println("백만 볼트 공격!");
}
}
public class MyPoketmon{
public static void main(String[] args){
Poketmon mymon = new Poketmon(); // new 연산자를 통해서 Poketmon 클래스를 객체로 생성할 수 있다.
//객체 변수 안에 접근하기 위해서 dot문법(.)사용해서 호출
mymon.name = "피카츄";
mymon.power = 100;
System.out.println(mymon.name+ "가 " + mymon.power + "의 파워를 가지고 ");
mymon.attack();
}
}
클래스는 여러 가지로 쓰일 수 있는데, 메소드만 있는 클래스도 있다.
class Calc{
// 데이터를 포함하는 멤버 변수 없이 동작만을 가지고 있는 클래스
int add(int a, int b) {
return a+b ;
}
}
public class Calculation {
public static void main(String[] args) {
// 객체 생성
Calc calc = new Calc(); // 객체변수 calc에 Calc 클래스 대입
// 메서드 호출
int nReturn = calc.add(2, 4);
System.out.println("2+4=" + nReturn);
}
}
클래스에 필드만 있는 경우도 있다.
class Song{
String singer;
String title;
}
public class MySong {
public static void main(String[] args) {
//객체 생성
Song song = new Song();
song.singer ="IU";
song.title = "celebrity";
// 확인
System.out.println(song.title + " by " + "song.singer");
}
}
이렇듯 클래스를 이해하기 위해서는 필드와 메소드 개념 이해가 중요하다.
728x90
'Programming > Java' 카테고리의 다른 글
[Java 객체지향 프로그래밍] 오버로딩(Overloading) (0) | 2021.02.22 |
---|---|
[JAVA 객체지향 프로그래밍] 패키지의 개념 (0) | 2021.02.21 |
[Java] 자바빈(JavaBean)에서 프로퍼티(property)와 필드(field)의 차이점? (0) | 2021.02.18 |
[Java] 자바의 예외(Exception) 처리 (0) | 2020.12.18 |
동일한 문자열 비교 : String 과 new String()의 차이 (0) | 2020.12.07 |