TIL(2023.07.27)

JAKE·2023년 7월 27일

TIL

목록 보기
11/48
post-thumbnail

🏃‍♂️What I learned

JAVA 복습 2

복습 1(1~7)은 https://velog.io/@jklee0424/TIL2023.07.26

8. 객체 지향 프로그래밍(Object Oriented Programming)

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


9. 객체 배열

같은 객체 참조 자료형의 변수를 하나로 묶은 것

1) 선언 - 클래스명[]배열명; or 클래스명 배열명[]
2) 할당 - 배열명 = new 클래스명[배열크기]
3) 선언과 할당 동시 - 클래스명[]배열명; or 클래스명 배열명[] = new 클래스명[배열크기]
4) 초기화
    ① 인덱스에 하나하나 입력
    ② 선언, 할당, 초기화를 동시에 실행

e.g.) Academy arr[ ] = { new Academy(1, "1번 객체"), new Academy(2, "2번 객체") };


0개의 댓글