자바의 정석

클래스 Class

야생늑대 2022. 4. 11. 17:55
반응형

 

  1. 현실에서의 객체는 설계도를 바탕으로 만들어진다.
  2. 자바에서 클래스는 설계도 역할을 한다.
  3. 클래스가 있어야 객체를 만들 수 있다.

    ex) 자동차가 객체라면  클래스는 자동차의 설계도이다.

        클래스로부터 만들어진 객체를 인스턴스라고 하며, 이 과정을 인스턴스화라고 한다.

        하나의 클래스로부터 여러 개의 인스턴스를 만들 수 있다.

  4. 클래스  == 데이터 + 함수 

  •     변수 : 하나의 데이터를 저장할 수 있는 공간
  •     배열 : 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
  •     구조체 : 서로 관련된 여러데이터(종류 관계X)를 하나로 저장할 수 있는 공간)  -서로관련있는 것들끼리
  •     클래스 : 데이터와 함수의 결합 (구조체 +함수(메소드) )  - 서로 관련있는 것들끼리

클래스의 작성규칙

더보기

 

  • 하나이상의 문자로 이루어져야한다. ex) Car, SportsCar
  • 첫 글자에는 숫자가 올 수 없다. ex) 3Car(x)
  • $, _ 이외의 특수문자는 사용할 수 없다. ex) @Car(x) , #Car(x)
  • 자바 키워드는 사용할 수 없다. ex) int(x), for(x)
  • 클래스이름은 한글이든, 영어든 상관없지만, 한글로 클래스 이름을 만드는 경우는 거의 없다.
  • 자바 영어는 대소문자를 다른 문자로 취급하기 때문에 클래스 이름도 구분해야한다.
  • 통상적으로 클래스 이름이 단일 단어라면 첫글자를 대문자로 나머지는 소문자로 작성한다.
  • 만약 서로 다른 단어가 혼합되어 이름을 사용한다면 각 단어의 첫 글자는 대문자로 작성한다.
  • ex) Car, Member, ChatClient, Web_Browser소스파일이름 역시 대소문자를 구분하고 반드시 클래스 이름과 대소문자가 같도록 해야한다.
  • public class 키워드는 클래스를 선언할 때 사용하며 반드시 소문자로 작성한다.

 

 4. 일반적으로 소스파일에는 하나의 클래스만 선언한다. 하지만 2개 이상의 클래스 선언도 가능하다.

    이때 동일한 이름의 클래스는 작성할 수 없으며, public class는 소스파일과 동일한 이름의 클래스 선언에만

     붙일 수수 있다. (2개 이상의 클래스가 선언된 소스파일을 컴파일하면 바이트코드 파일은 클래스를 선언한 개수만큼

    생긴다.  결국 소스파일은 클래스 선언을 담고 있는 저장 단위 일뿐, 클래스 자체는 아니다.)

 

 

 5. new 연산자는 힙 영역(객체와, 배열을 저장하는 영역)에 객체를 생성시키고 객체의 번지를 리턴하도록 되어있다.

    new 연산자를 사용할 때마다 메모리에 다른 번지의 새로운 인스턴스가 생성된다.

  ex) Student 클래스를 

  • Student s1 = new Student(); - 100번지의 Student객체를 참조하는 s1 참조 변수
  • Student s2 = new Student(); - 200번지의 Student객체를 참조하는 s2 참조 변수
  • Student s3 = new Student(); - 300번지의 Student객체를 참조하는 s3 참조 변수

 

6. 클래스의 용도는 두 가지가 있다.

6 - 1. 라이브러리(API : Application Program interface) 클래스

  •   다른 클래스에서 이용할 목적으로 설계된다.

6 - 2. 실행용 클래스

  •   프로그램의 실행을 위한 main() 메소드를 제공하는 역할

   ※ 프로그램 전체에서 사용되는 클래스가 100개라면 99개는 라이브러리 클래스이고, 단 하나가 실행 클래스이다.

 

▶ 라이브러리 클래스

public class Student{
//필드
//생성자
//메소드		
	}

실행용 클래스

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

▶ 라이브러리 클래스와 실행용 클래스를 동시에 만들 수도 있다.

public class Student{
//필드
//생성자
//메소드		
		public static void main(String[] args) {
			student s1 = new Student();
			System.out.println("s1 변수가 Student 객체를 참조합니다.");		
	}
	}

 

 프로그램이 단 하나의 클래스로 구성된다면 한 소스파일에 작성하면 좋겠지만,

  대부분의 객체 지향 프로그램은 라이브러리(부품 객체 및 완성 객체)와 실행 클래스가 분리되어 있다.

 

클래스의 구성 멤버에는 필드, 생성자, 메소드, 가 있으며 생략되거나 복수의 개수로 작성될 수 있다.

필드-

생성자 -

메소드 -

 

 

더보기

 

참조타입 String클래스(타입)는 new 연산자없이 클래스선언 해도 객체가 생성 번지 참조

일반 클래스를 객체생성하려면 new 연산자 사용? 뒤이어 오는 생성자는 클래스형태.

이 클래스형태 객체의 번지를 리턴

 

String은 자바키워드라서 이미있는 String클래스의 객체를 가져와 저장. new 연산자로 객체 안만들어줘도 됨.

 

일반 클래스를 객체생성하려면 new 연산자 사용

왜 같은 이름 사용? == 자바에서 클래스에서 객체를 생성하기 위해 생성자를 불러올 때 같은 이름을 사용하기로 되어있다.

 

반응형

'자바의 정석' 카테고리의 다른 글

인스턴스 멤버와 정적 멤버  (0) 2022.04.15
메소드 Method  (0) 2022.04.12
생성자 Constructor  (0) 2022.04.12
필드 Field  (0) 2022.04.11
객체 지향 프로그래밍 기본 개념  (0) 2022.04.10