본문 바로가기

프로그래밍/Java (기초)

객체지향 프로그래밍

반응형


2017-03-04 

위 설명은 이해를 돕기 위해 도식화 되어있지만 설명이 정확하지 않으며 모순이 있을수 있습니다.

객체지향의 어떤것인지 전혀 이해가 가지 않을 때 간략하게 느낌만 집고 넣어가시길 바랍니다.(__) 

빠른 시일내에 수정하도록 하겠습니다.


=======================================================================================





public class Animal { String name; public void setName(String name) { this.name = name; } public static void main(String[] args) { Animal cat = new Animal(); cat.setName("boby"); System.out.println(cat.name); } }


객체지향의 이해


먼저  public class Animal{}

 는 Animal이라는 클래스의 껍데기를 선언한다. 


String name;

바로 다음에 문자열 자료형인 name을 클래스부에서 선언하였다.

이는 인스턴스 변수라고 하며, main함수(호출부)에서 선언된 객체들이 각각 가지게될 변수이다.


public static void main(String[] args) { Animal cat = new Animal();


이후 Main함수(호출부) 에서 

Animal cat = new Animal();

를 통해 Animal 클래스에 참조변수형 Animal의 변수 cat이라는 새로운 객체를 생성한다. (자바의 new 연산자는 새로운 객체를 생성하는 명령이다) 
-> cat은 객체이다. 그러면서 동시에 animal의 인스턴스 관계이다.




public void setName(String name) { this.name = name; }


그후 setName이라는 메소드를 선언하였고, 이 메소드는 this.name=name;라는 동작부를 가지고 있다. 또한 매개변수도 가지고 있다.

이것은 객체.setName="안녕" 의 형태로 main함수에서 setName함수룰 호출한다면..

안녕이라는 데이터는 name의 값이 될것인데, 그 값은 this.name으로 인해, setName앞에 선언한 객체의 name값이 된다는걸 의미한다.


(만약 dog라는 객체를 생성하고 가정하고)


public static void main(String[] args) { Animal cat = new Animal(); dog.setName("똥개"); System.out.println(dog.name); } }


의 코드를 실행시킨다면..

setName메소드의 this.name = name 이 동작하여

System.out.println(dog.name);

에선 "똥개"가 출력 될것이다.


반응형

'프로그래밍 > Java (기초)' 카테고리의 다른 글

overloading  (1) 2016.03.28
overriding  (0) 2016.03.28
인터페이스(interface)  (0) 2016.03.26
상속(inheritance)  (0) 2016.03.26
초기화와 생성자(Constructor), this, super  (0) 2016.03.26