[Java]클래스의 개념

김피자·2022년 11월 23일
0

자바

목록 보기
1/9
post-thumbnail

객체(Object)

: 객체는 자신만의 고유한 특성(state)행동(behavior)을 가지며 다른 객체에게 행동을 요청하거나 정보를 주고받는 등 상호작용하며 존재


객체 지향 프로그래밍(OOP, Object-Oriented Programming)

: 모든 데이터를 객체(Object)로 취급한다


객체 지향 언어의 특징

캡슐화(Encapsulation)
: 객체를 캡슐로 싸서 내부를 보호하고 볼 수 없게 하는 것

자바에서 객체는 클래스(class)라는 캡슐을 사용하고 필드(멤버 변수)와 메소드(멤버 함수)로 구성


상속(Inheritance)
: 자식 클래스가 부모 클래스의 속성을 물려받고 기능을 추가하여 확장하는 개념

부모클래스 : 슈퍼클래스(Super class)
자식클래스 : 서브클래스(Sub class)

상속은 슈퍼 클래스의 메소드를 물려받아 코드를 재사용함으로써, 시간과 비용을 줄임


다형성(Polymorphism)
: 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 동작하도록 구현하는 것

  1. 부모 클래스에 구현된 메소드를, 자식 클래스에서 동일한 이름으로 자신의 특징에 맞게 다시 구현하는 것 오버라이딩(Overriding)
  2. 클래스 내에서 이름이 같지만 서로 다르게 동작하는 메소드를 여러개 만드는 것 오버로딩(Overloading)

클래스(Class)

: 객체를 정의하는 틀 또는 설계도와 같은 의미로 사용

자바에서는 설계도인 클래스를 가지고, 여러 객체를 생성하여 사용함


클래스와 객체

클래스 : 객체를 만들어 내기 위한 설계도 혹은 틀
객체 : 클래스 모양 그대로 생성된 실체


클래스의 구성

: class 키워드를 사용하여 선언

멤버는 클래스의 구성요소로 필드(멤버변수), 메소드(멤버함수)가 존재

ex01)
public class Human{ // class라는 키워드를 사용하여 선언
	public int year; //사람의 출생년도 필드
    public String name; //사람의 나이 필드
    
    public Human(){ //사람의 생성자 메소드
    }
    public int now_age(){ //현재 나이 계산 메소드
    	return 2022-year+1;
    }
}
  1. 캡슐화의 원칙 = 클래스 외부에는 어떤 필드나 메소드를 둘 수 없음
  2. 필드 = 객체 내 값을 저장할 멤버 변수
  3. 메소드 = 함수, 객체의 행동을 구현

인스턴스(Instance)

: 자바에서 클래스를 사용하기 위해서는 해당 클래스 타입의 객체를 선언해야함
: 클래스로부트 객체를 선언하는 과정 = 클래스의 인스턴스화

Human h = new Human();

즉, 인스턴스란 메모리에 할당된 객체를 의미

profile
제로부터시작하는코딩생활

0개의 댓글