이 객체들 간에 상호작용
을 하도록 프로그램을 만드는 방식입니다.캡슐화
: 객체의 데이터와 메소드를 묶어 외부 접근을 제한하고 데이터를 보호상속
: 한 클래스가 다른 클래스의 특성을 받아와 코드 재사용성을 높이고 구조를 계층적으로 조직화다형성
: 같은 인터페이스나 메소드 호출이 다양한 객체에 대해 다른 실행결과를 낼 수 있게 하여 프로그램추상화
: 복잡성을 관리하고 필수적인 특성을 강조하여 프로그램의 확장성과 유연성을 증진속성(필드)
, 동작(메소드)
로 구성객체의 동작인 메소드
를 이용해서 서로 상호작용을 합니다.사용자가 정의하는 자료형
인스턴스화
: 클래스로부터 객체를 만듦인스턴스
: 클래스로부터 만들어진 객체 -> 이때 변수는 객체이다. 클래스의 인스턴스
필드(변수)
: 클래스 내에서 값을 저장하는 변수메소드
: 객체 동작으로 호출 시 실행하는 블록, 객체 내부의 함수생성자
: 클래스 이름과 동일한 이름을 갖는 특별한 종류의 메소드, 객체의 초기화 담당
, 객체가 생성될 때 자동으로 호출되는 메소드1️⃣ 필드 선언
2️⃣ 필드 사용
객체가 존재해야 필드를 사용할 수 있습니다.
3️⃣ 메소드의 기본구조
아무 조건 없이 사용가능
합니다.import문으로 어떤 패키지의 클래스인지 명시
해야합니다.클래스나 일부 멤버(필드, 메소드)를 외부에서의 접근을 제한하는 것입니다.
중요한 필드나 메소드가 외부로 노출되지 않도록 하기 위함입니다.
public
: 패키지에 관계없이 모든 클래스
에서 접근 가능
protected
: 같은 패키지 내의 모든 클래스에서 접근 가능(다른 패키지에서 접근 불가)
단, 다른 패키지에 있더라도 상속 받은 서브클래스에서는 접이 가능하다
default
: 같은 패키지 내의 모든 클래스
에서 접근이 가능(다른 패키지에서 접근 불가)
private
: `같은 클래스에서만 접근 가능
private
으로 선언하면 다른 클래스에서 접근하지 못하는 것이 되어서, 간접적으로 필드에 접근할 수 있도록 public
메소드를 제공합니다.getter
,setter
메소드를 통해 필드에 접근
하는 것을 선호합니다.getter
: 필드 값을 가져올 때setter
: 필드 값을 설정할 때우측클릭 ➡️ source ➡️ Generate getters and Setters ➡️ 원하는 필드 선택
클래스당 하나만 생성
됩니다.객체를 생성하지 않아도 static 멤버에 접근이 가능합니다.
같은 메모리 공간
을 공유합니다.공유의 목적
으로 자주 사용됩니다.public static int COUNT = 0;
유틸리티성 메소드
를 작성할때 많이 사용됩니다.public final class Math{
public static int abs(int a);
public static int max(int a, int b);
...
}
//사용시엔
int n = Math.abs(-5);
읽기만 허용되고 값이 변경되면 안되는 경우에 사용
됩니다.한번만 초기화할 수 있고, 초기화 된 값이 최종값
대문자
로 작성하는 것이 관례입니다.static final 타입 상수 [=초기값]; static final double PI = 3.141592; static final String HI = "Hello";