자바

JAVA 자바 객체와 클래스 - 클래스의 선언, 객체 생성, 클래스 변수

알통몬_ 2017. 3. 12. 19:16
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

객체와 클래스


 객체는 클래스를 바탕으로 생성.

클래스에는 객체를 생성하기 위한 필드와 메서드가 정의되어 있습니다. 


클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 힙니다. 

클래스로부터 객체를 만드는 과정을 인스턴스화라고 합니다. 

하나의 클래스로 여러 개의 인스턴스를 만들 수도 있습니다.

객체 지향 프로그래밍 개발은 세 가지 단계

=>첫 번째 단계 : 클래스 설계

두번 째 단계 : 설계된 클래스를 가지고 사용할 객체를 생성

마지막 단계 : 생성된 객체를 이용


클래스의 선언

 클래스 이름은 다른 클래스와 식별할 목적으로 사용되므로 자바의 식별자 작성 규칙을 따라야 합니다.

1. 하나 이상의 문자로 이루어져야 한다.

2. 첫 번째 글자는 숫자가 올 수 없다.

3. '$' , '_' 이외의 특수 문자는 사용할 수 없다.

4. 자바  키워드는 사용할 수 없다.


또한 한글로 클래스 이름은 잘 만들지 않고, 대소문자를 구분하기 때문에 

클래스 이름도 영어 대소문자를 구분합니다. 

관례적으로 클래스 이름이 단일 단어라면 첫 자를 대문자로 하고 나머지는 소문자로 합니다. 

서로다른 단어가 혼합된 이름을 사용한다면 낙타식 표기법 사용.

ex)Car, ChatServer

저장은 클래스이름.java로 소스파일을 해야합니다.


public class ClassName {


}

하나의 클래스 파일에 두 개 이상의 클래스 선언가능.

public class First{


}

class Second{


}

두 개 이상의 클래스가 선언된 소스 파일을 컴파일 하면 (.class)파일은 클래스를 선언한 갯수만큼 생성.

* public 접근자는 파일이름과 같은 클래스에만 붙일 수 있습니다.

*파일 하나당 클래스 하나만을 선언하는 것이 좋다.


객체 생성과 클래스 변수 


 클래스로부터 객체를 생성하는 방법 : new 클래스();

new 는 클래스로부터 객체를 생성시키는 연산자입니다.

 new 연산자 뒤에는 생성자가 오는데 생성자는 클래스() 형태를 가집니다. 

new 연산자로 생성된 객체는 메모리 힙(Heap) 영역에 생성됩니다. 

OOP에서 메모리 내에서 생성된 객체의 위치를 모르면 사용할 수 없습니다. 

new 연산자는 힙 영역에 객체를 생성시킨 후, 객체의 주소를 리턴하도록 되어 있습니다. 

주소를 참조 타입인 클래스 변수에 저장해 두면, 변수를 통해 객체를 사용할 수 있습니다.

클래스 변수;

변수 = new 클래스();


클래스 선언과 객체 생성 예제)

예제1)

public class Student {


 

}


예제2)

public class Example {
public static void main(String[] args) {
Student s1 = new Student();
System.out.println("s1 변수가 Student 객체를 참조합니다.");
Student s2 = new Student();
System.out.println("s2 변수가 또 다른 Student 객체를 참조합니다.");
}
}


같은 클래스로부터 생성되었지만 Student 객체는 자신만의 고유 데이터를 가지면서 메모리에서 활동합니다.
s1과 s2가 참조하는 Student 객체는 완전히 독립된 서로 다른 객체입니다.

 클래스의 용도 : 1.라이브리러(API)용 2.실행용.
라이브러리 클래스 : 다른 클래스에서 이용할 목적으로 설계. 
실행 클래스 : 프로그램의 실행 진입점인 main()메서드를 제공하는 역할.  
Studnet 에 main() 메서드를 작성해서 라이브러이인 동시에 실행 클래스로 만들 수도 있습니다.

public class Student {

public static void main(String[] args) {
Student s1 = new Student();
System.out.println("s1 변수가 Student 객체를 참조합니다.");
Student s2 = new Student();
System.out.println("s2 변수가 또 다른 Student 객체를 참조합니다.");
}

 

}


반응형