[JAVA] 클래스와 객체

JUNSEUNG LEE·2022년 9월 24일
0

JAVA

목록 보기
3/17
post-thumbnail

1. 클래스와 객체의 정의와 용도

  1. 객체
    • 정의 : 물리적(눈에 보이거나), 추상적(눈에 안보이거나)인 것 중에서 자신의 속성을 가지고 있으며 식별 가능한 것
    • 용도 : 클래스로 객체를 생성하여 사용
  2. 클래스
    • 정의 : 객체의 속성과 기능을 코드로 구현한 것, '클래스를 정의한다' - 객체를 클래스로 구현하는 것, 객체를 만들기 위한 설계도
    • 용도 : 객체를 생성하기 위한 필드와 메소드가 정의되어 있으며 객체를 생성할 때 사용

2. 객체와 인스턴스

  1. 객체 : 클래스의 인스턴스
  2. 인스턴스
    • 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 함, 하나의 클래스로부터 여러 개의 인스턴스를 만들 수 있음
    • 인스턴스화 : 클래스로부터 객체를 만드는 과정 ( ClassName var = new ClassName(); < 인스턴스화, 메모리에 객체를 저장)
  3. 정리
    • 객체는 구현할 모든 것
    • 클래스는 객체를 구현하기 위한 설계도
    • 객체는 클래스의 인스턴스
    • 클래스로 객체를 만드는 과정 '인스턴스화'

3. 객체의 구성요소 - 속성과 기능

  1. 속성과 기능(멤버)
    • 객체에는 속성과 기능이 존재
    • 사람이라는 객체를 속성(나이, 이름, 성별), 기능(뛰다, 말하다. 앉다)으로 구성
    • 이런 구성요소를 통틀어서 멤버라고 함
  2. 속성(필드, 변수)
    public class Person {  
    	String name; // 변수  
    }
  3. 기능(메소드, 함수)
    public class Person {  
    	String name; // 변수  
    	public void sayMyName() { // 메소드  
    		System.out.println(name);
    	}  
    } 

4. 인스턴스의 생성과 사용

// 1. 클래스 선언
public class Person {  
	String name; <- 변수  
	public void sayMyName() { // 메소드  
		System.out.println(name);
	}  
}

// 2. 인스턴스 생성
//// 클래스명 참조변수명 = new 클래스명();  
Person p1 = new Person(); // 인스턴스 생성(객체를 메모리에 할당)
//// new 사용하여 객체를 생성하면 힙 영역에 저장
//// 참조변수명 p1은 힙에 저장된 객체의 주소를 가지고 있음. 스택 영역에 저장되어있음

// 3. 인스턴스 사용
p1.name = '준승'; // p1이 참조하고 있는 인스턴스의 변수 name에 '준승'이라는 값 할당  
p1.sayMyName(); // p1이 참조하고 있는 인스턴스의 메소드를 호출  
//// 결과값으로 콘솔에 준승이 나옴

5. 객체 배열

  • 객체를 참조하는 배열로 기본타입(byte, int 등) 배열은 각 항목에 직접 값을 가지고 있지만, 참조 타입(클래스, 인터페이스) 배열은 각 항목에 객체의 번지(주소)를 가지고 있음

6. 클래스의 또 다른 정의

  • 사용자 정의 타입
    - 정해져 있는 기본타입(byte, int 등) 외로 사용자가 원하는 타입을 만들어 사용 가능 EX) 영어 월 약자(Jan, Feb 등)만 담는 타입을 만들어서 클래스로 사용
profile
개발자 준승

0개의 댓글