public class Animal { //동물이라는 클래스이다

public static void main(String[] args) {

Animal cat = new Animal(); //동물이라는 클래스를 객체로 생성한것이다.

}

}


 new 는 객체를 생성할 때 사용하는 키워드이다. 이렇게 하면 Animal 클래스의 인스턴스(instance)인 cat, 즉 Animal의 객체가 만들어진다.



정확히 객체와 인스턴스란?

클래스에 의해서 만들어진 객체를 인스턴스라고도 한다. 그렇다면 객체와 인스턴스의 차이는 무엇일까? 이렇게 생각 해 보자. Animal cat = new Animal(); 이렇게 만들어진 cat은 객체이다. 그리고 cat이라는 객체는 Animal의 인스턴스(instance)이다. 즉 인스턴스라는 말은 특정 객체(cat)가 어떤 클래스(Animal)의 객체인지를 관계위주로 설명할 때 사용된다.  "cat은 인스턴스" 보다는 "cat은 객체"라는 표현이 "cat은 Animal의 객체" 보다는 "cat은 Animal의 인스턴스" 라는 표현이 훨씬 잘 어울린다.



1. field , member vaiable (변수)

:클래스 내의 메소드들은 자유롭게 사용이 가능

:외부에선 접근 지정자에 의해 사용유무가 결정이 된다.


2. Method: 외부와 내부를 연결시켜주는 인터페이스 역할

1) instance method

:객체를 생성한 후에 사용할 수 있는 메소드

2) static method

:객체의 유무와 상관없이 사용할 수 있는 메소드

:공유의미로 사용(메모리 절약효과)


3.  constructor (생성자 함수) => 객체등록

:객체 생성시 자동호출 되어지는 함수

:생성자는 호출 실패시 객체가 만들어지지 않는다.

:생성자는 오버로딩이 가능하다.

:생성자는 클래스명과 동일하다.

:생성자는 리턴타입이 존재하지 않는다.

:생성자는 명시적으로 만들지 않을 경우 디폴트 생성자가 생성된다.

그런데 명시적으로 만들경우 디폴트 생성자는 제공되지 않는다.



public class Main {


//디폴트생성자대신 명시적으로 생성자함수를 만들었다.

Main(){

System.out.println("생성자함수 호출완료");

}

//메인함수에서 생성하게되면 디폴트생성자에있는 문자열이 출력된다.

public static void main(String[] args) {

// TODO Auto-generated method stub

Main m = new Main();

}

}

블로그 이미지

왕왕왕왕

,