데이터(→ 변수)와 행위(→ 메서드)를 객체 안에 정의
공통적으로 같은 구조를(데이터와 메서드) 가지는 객체들을 서로 분류하기 위해 만든 게 클래스!!
객체(object)란 물리적으로 존재하거나 개념적인 것 중에서 다른 것과 식별가능한 것
객체는 속성과 동작으로 구성. 자바는 이러한 속성과 동작을 각각 필드와 메소드라고 부름
자바스크립트는 절차 중심이다.
자바는 객체 지향이다.
객체 지향 프로그래밍(OOP)
객체들을 먼저 만들고, 이 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법
클래스 : 대상을
메서드 호출을 통해서 이루어진다.
입력을 매개변수로 받고 리턴해준다.
매개값과 리턴값
클래스와 인스턴스
// 클래스 선언
public class 클래스명 {
}
⭐초기화 중요
객체생성과
한 파일에는 하나의 public 클래스만 존재할 수 있다.
실행은 main 메서드가 정의되어 있으면 실행할 수 있다.
main()의 유무로 분류가능
같은 패키지에 있는 경우, import하지 않고 바로 사용 가능
문제를 풀 수 잇는 정도만 갖고 있으면 된다.
모자라지 않게, 넘치지 않게.
대입문서를 가지고 초기화해주기
어딘가에 만들어진 클래스를 자신의 속성으로 가질 수 있다.
Car 입장에서 내부와 외부 구분하기
Car myCar = new Car();
클래스 변수 = new 클래스();
클래스() : 생성자 호출
⭐모든 클래스는 생성자를 가진다.
여러 개 가질 수도 있다.
컴파일러가 기본 생성자를 자동으로 추가해준다.
기본생성자 : 매개변수가 없는 생성자, default 생성자
compile 에러 : 개수는 맞는데 타입이 틀릴 경우
다른 생성자인데 허용이 된다고????????
예시 : String이랑 int
자바는 전역변수 개념이 없다.
stack에 this가 있다.
this가 참조한다.
메서드가 호출됐을 때 자바가 자동으로 생성해준다.
// 받아오는 것
this.model=model;
// 고정해준 것
this.color="은색";
this.maxSpeed=250;
생성자가 또 다른 생성자를 호출할 수 있다.
this를 사용해서
반드시 첫번째 줄에 와야 한다.
라이브러리 생성자는 틀만 준다. 결과값을 만들어주지 않는다.
하나라도 정의하면 자동 추가되지 않는다.
클래스 구성요소
int sum(int ...values) : 배열이다. 모든 매개변수를 받을 수 있다.
return타입이 같은지도 체크해줘야한다. 문자가 일치하는지도 확인해주기.
조건문 안 쓰고 리턴했을 때 : 에러 발생한다.
getter/setter : 이것을 통해서 외부객체에서도 사용할 수 있다.
클래스의 구성요소
필드 : 인스턴스마다 존재한다.
생성자 : this, new, 인스턴스객체
메서드
인스턴스와 static 멤버로 구분한다.
인스턴스
static
동적으로 작동할 필요없는 정보는 static 사용하기(하나만 존재하면 되기 때문에)
this는 연관된 데이터가 있어야 한다.
접근은 인스턴스가 아닌 클래스로 접근한다.
public 외부에서 접근 가능하다. class로 접근한다. Earth.EARTHRADIUS(반대:private)
static : 정적
void : 리턴값이 없어도 됨(주로 출력용으로 사용, System.out.println()_)
main : 메서드 이름
() : 매개변수
class 규칙
메서드 규칙
return문
메소드의 실행을 강제 종료하고 호출한 곳으로 돌아간다는 의미
for문의 break와 같은 의미
fianl과 상수
상수 : ALL_THING 모두 대문자로 작성
대문자면 final이자 상수이다. 초기화 작업 필수이다.