[JAVA] 자바의 클래스와 객체에 대해

[JAVA] 자바의 클래스와 객체에 대해

1. 객체란?

객체는 변수와 메소드를 뜻하는 것이다. 변수는 항상 바뀔 수 있는 것이고 메소드는 행동을 의미한다.즉 변수는 int a; 에서 a가 변수를 뜻하고 메소드는 함수를 의미한다.간단히 말하면 변수는 속성과 같다. 변수 = 배고프다메소드 실행 = 밥을 먹는다변수 = 배가 부르다

이런 형식으로 메소드는 행동을 의미하게 된다.

2. 클래스란?

클래스는 변수+메소드를 포함하고 있는 것이다.c언어로 생각해보면 struct와 함수가 같이 있는 느낌...??

class 클래스이름 [extends 부모클래스이름] { //변수 //생성자 //메소드 }

여기서 부모클래스 extends가 생략될 수 있다. 생략된 경우는 object의 서브 클래스가 된다. (아직 상속에 대해서는 기초만 배웠으니 넘긴다...ㅎㅎ)

3. 인스턴스란?

클래스에서 객체가 생성되는 것을 실체화라고 한다.이때 구체적으로 생성된 객체를 인스턴스라고 하는데 쉽게 설명하면 클래스를 여러곳에서 쓰는 방식이다.c언어를 예로 들자면 struct를 a1, a2 이런식으로 쓰게 되는데 이걸 자바에서는 인스턴스라는 의미를 가지고 있다.위는 예시에 불과하니 무슨 느낌인지만 이해하자

4. 클래스와 객체의 멤버

클래스의 멤버: 클래스 변수, 클래스 메소드 (앞에 static이 붙는다)객체의 멤버: 인스턴스 변수, 인스턴스 메소드

5. 객체지향 프로그래밍이란?

클래스를 정의하고 이 클래스에서 객체를 생성해 다른 객체와 통신하며 필요한 작업을 수행하는 것이다.서로 다른 클래스에서 나온 객체들끼리 통신을 하게 되는데 이때 공개된 메소드를 이용해 통신하게 된다.

예제1. 클래스 정의

여기서 Car는 클래스를 의미한다. 즉 변수와 메소드를 포함하고 있다.

변수와 메소드는 3개씩 포함되어있다.

color, size, engineState << 변수

showAtts, startEngine, stopEngine << 메소드

출력결과

from http://yumyum2.tistory.com/11 by ccl(A) rewrite - 2021-10-20 21:27:13