복습 1(1~7)은 https://velog.io/@jklee0424/TIL2023.07.26
1) 클래스
① 여러가지 속성과
② 여러가지 기능을 가짐
# 이것들을 정의한 것이 각각 필드와 메서드
③ 위에서 정의한 속성을 초기화하기 위해 생성자가 필요
클래스는 필드 & 생성자 & 메서드를 정의하는 장소
- 일종의 설계도, 틀
- 추상화(abstraction) - 공통점을 추출하고 불필요한 부분을 제거하는 과정
즉, 모든 객체가 사용할 수 있는 속성과 기능만 정의함
- 캡슐화(encapsulation) - 데이터의 직접 접근을 막는 것
멤버변수(필드변수)는 private이 기본 원칙
//e.g. )
public class User {
private String userId;
private String userPassword;
private String userName;
private int userAge;
private char userGender;
//-------------------------- 속성(==필드) --------------------------
public User() {} //기본 생성자
public User(String userId, String userPassword) { // 매개변수 생성자
this.userId = userId;
this.userPassword = userPassword;
}
//----------------------------- 생성자 ----------------------------
public void move() {
}
public String ride() {
return"";
}
//----------------------------- 메소드 ----------------------------
2) 객체
- 위와 같이 클래스(설계도)를 만들었으면 이 설계도에 따라 만들어낸 것이 객체
- 설계도에 따라 객체를 만들었지만, 가지고 있는 속성과 기능은 달라질 수 있음
User user1 = new User(); // user1 라는 객체 생성
User user2 = new USer(); // user2 라는 객체 생성
3) 클래스 작성 방법
① 클래스 - [접근제한자] [예약어]
클래스의 [접근제한자] - public, (default)
② 필드 - [접근제한자] [예약어] 자료형 변수명
필드의 [접근제한자] - public, protected, (default), private
③ 생성자 - [접근제한자] [클래스명] (매개변수) { }
오버로딩 - 하나의 클래스명으로 여러개의 메소드(생성자 포함) 작성
매개변수의 자료형, 순서, 개수가 달라야함
④ 메소드 - [접근제한자] [예약어] 반환형 메소드명([매개변수]){}
메소드의 [접근제한자] - public, protected, (default), private
같은 객체 참조 자료형의 변수를 하나로 묶은 것
1) 선언 - 클래스명[]배열명; or 클래스명 배열명[]
2) 할당 - 배열명 = new 클래스명[배열크기]
3) 선언과 할당 동시 - 클래스명[]배열명; or 클래스명 배열명[] = new 클래스명[배열크기]
4) 초기화
① 인덱스에 하나하나 입력
② 선언, 할당, 초기화를 동시에 실행
e.g.) Academy arr[ ] = { new Academy(1, "1번 객체"), new Academy(2, "2번 객체") };