다양한 관심 :)

JAVA - 객체와 클래스 본문

프로그래밍 공부/JAVA

JAVA - 객체와 클래스

뚜뚜:) 2020. 10. 12. 19:01

-객체는 설계도(class)를 바탕으로 만들어지며, class는 객체를 만들기 위한 일종의 틀이다.

- 필드와 메소드가 정의, class로부터 만들어진 객체를 해당 클래스의 인스턴스(instance)라고 한다.

 

- 객체 생성순서 : 개발자가 설계 -> 클래스생성, 인스턴스화의 과정(객체를 만드는과정) -> 인스턴스(객체)

 

=> 객체 프로그래밍 개발단계

1. 클래스 선언한다

2. 설계된 클래스로 객체를 생성한다.

3. 생성된 객체를 사용한다.

 

1. 클래스 선언 

//클래스  -설계도 만듦
class Student{	//클래스의 타입을 가진 변수를 만들어 사용 
	int kor;
	int eng;
	int math;
	int sum;
	double avg;
	String name;
}

- class  클래스명 { }  또는  public class 클래스명  { } 을 사용하여 선언한다.

- 두개이상의 클래스를 선언 가능하며, 파일이름과 동일한 이름의 클래스만 public(접근제한자)을 사용한다.

=> 클래스명.java로 소스파일 -> 컴파일 후 클래스명.class

 

클래스의 구성

  • 필드 : 객체의 데이터가 저장되는곳
  • 생성자 : 객체 생성시 초기화 역할(=인스턴스 변수를 초기화 함)
  • 메서드 : 객체의 동작에 해당, 실행블록

 

클래스에서 변수를 초기화 하는 방법

  1. 명시적 초기화
  2. 초기화 블럭
  3. 생성자 실행
// 클래스 (변수 + 매서드)

	// 초기화 방법
	// 1. 명시적 초기화 : 변수를 선언하면서 값을 넣어주는것 (값만 넣을 수 있음)
	int var = 10;
	static int staticVar = 20; //

	// 2. 초기화 블럭 -클래스 안에 {}
	// 여러줄의 코드를 작성할 수 있음
	{
		var = 30; // (인스턴스 변수를 초기화 )
	}

	static {
		staticVar = 40; // (클래스를 초기화 )
	}

 

2. 객체생성

new 연산자를 사용한다

- new연산자 뒤에 나오는 생성자를 이용하여 메모리에 객체를 만든다.

	new 클래스명 ();

-주소를 클래스 변수에 저장하여 변수를 통해 객체를 사용한다.

		 클래스변수 = new 클래스();

 

3. 생성자 실행 

: 클래스와 같은 이름의 매서드로 클래스에 반드시 하나이상 존재해야 한다

-> 그래야 객체를 생성하며 직접 선언해주지 않으면 컴파일러가 기본 생성자를 만들어 준다.

- 명시적으로 선언한 경우 기본생성자를 호출해서 객체를 생성할 수 없다.

- 클래스 이름과 똑같은 생성자: 인스턴스 변수와 클래스 변수를 초기화함, 파라미터()는 필요 유무에 따라 작성

//기본생성자
        클래스명 ( ) { } ;
        
//명시적 생성자
	클래스명( 매개변수선언) { //객체의 초기화 코드 } 
    
// new 연산자 사용 : 생성자 호출할 때 외부의 값을 생성자 블록 { } 안으로 전달
	클래스명 변수 = new 클래스명 (값..);
    
public class VariableInit {


	VariableInit() { 
		var = 50; }
        
        
 public static void main (String[] args){
		Init i = new Init();
		
		i.a = 10;
		i.b = 20;
		i.c = 30;

- 생성자 안에서 초기화 해주는 이유 : 초기화에 여러줄의 코드가 필요할 때, 초기화에 파라미터가 필요할 때 사용

// 왜 파라미터를 받아야 하는가?
		// => 원하고자 하는 값을 얻기위해 일일히 변수를 주기에 번거로움  => '파라미터로 값을 초기화 ' 
		// 위에와 밑에 값이 동일하나, 훨신 더 수월하게 가능함	
		
		Init i3 =  new Init(70,80,90);	//객체생성(밑에 만든 생성자를 통해)

 

'프로그래밍 공부 > JAVA' 카테고리의 다른 글

Java- File 객체 만들기  (0) 2020.11.02
사용자 정의 데이터타입  (0) 2020.10.12
JAVA - 객체지향 프로그래밍 (OOP)  (0) 2020.10.12
JAVA - JAVA 설치  (0) 2020.10.10
JAVA - ECLIPSE (이클립스) 설치  (0) 2020.10.10