[section 1] Java 객체지향 프로그래밍 기초(1) - 클래스, 필드, 메소드

수경·2022년 11월 4일
0

코드스테이츠

목록 보기
12/57
post-thumbnail

클래스란?

객체를 만들기 위한 설계도


클래스의 구성요소

  1. 필드
  2. 생성자
  3. 메소드
  4. 이너 클래스

클래스의 멤버

클래스의 구성요소에서 생성자를 제외한 나머지 요소들을 클래스의 멤버라고 함

➡️ 필드 메소드 이너 클래스


객체의 생성

클래스로 객체를 만들고, 만들어진 객체를 인스턴스 라고 함

클래스명 변수명 = new 클래스명();

❗️클래스 영역 (메소드 영역)

  • 클래스
  • 메소드
  • 정적 멤버

❗️스택 영역

❗️힙 영역

  • 객체 (필드 / 이너 클래스)
  • new

필드

클래스의 속성을 정의 (변수)

변수의 종류: 클래스 변수, 인스턴스 변수, 지역 변수

➡️ 필드 : 클래스 변수인스턴스 변수

클래스 변수

  • static 키워드를 붙임 ➡️ static(정적) 변수

  • 클래스가 생성될 때 함께 생성되어 클래스 영역에 저장됨

  • 클래스의 공유 변수 성질을 가짐

  • 인스턴스가 없어도 사용할 수 있음
    ➡️ {클래스명}.{클래스 변수명}

  • 직접 초기화 하지 않아도 컴파일러가 자동으로 초기화

인스턴스 변수

  • 각 인스턴스 마다의 성질을 나타내는 변수

  • 인스터스 생성 후에 사용
    ➡️ {인스턴스명}.{인스턴스 변수명}

  • 직접 초기화 하지 않아도 컴파일러가 자동으로 초기화

지역 변수

  • 이너 클래스 내부에 선언
    ➡️ ❗️ 이너 클래스 밖에서 사용할 수 없음

  • 직접 초기화해서 사용해야 함


메소드

클래스의 기능을 정의 (함수)

  • {인스턴스명}.{메소드명} 으로 호출

  • 리턴 타입이 void 가 아니면 반드시 return 문 필요
    ❗️생성자는 리턴 자체가 없는 특수 메소드이기 때문에 return 문 필요 ❌

메소드 오버로딩

하나의 클래스 안에 같은 이름의 메소드를 여러개 정의

조건
1. 매소드의 이름이 같아야 함
2. 배개변수의 개수 혹은 타입이 달라야 함

// 매개변수가 없는 println 메소드
System.out.println();			
// 매개변수의 타입이 int인 println 메소드
System.out.println(int n);		
// 매개변수의 타입이 double인 println 메소드
System.out.println(double n);
// 매개변수의 타입이 float인 println 메소드
System.out.println(float n);

// 위 메소드 모두 println 메소드를 오버로딩

회고

객체지향.... 너무 어렵다..

그래도 오늘은 좀 아는 내용이라 금방 끝내고 어제 못풀었던 자바 심화 문제를 풀었다,,,

근데 문제 설명이 살짝 불친절해서 문제 해석에만 애를 먹었다 🫠 ...

이제 fork 하고 pull request 하는 것에 맛들린 것 같다.
제출 하지 않아도 되는 과제까지 마구 제출하고 있다!
잔디도 심고 문제 푼 증거도 남기고 fork-pull request 연습도 하고 아주 만족

.
.
.

사실 이 글은 어제 공부한 내용이다 ㅎㅎ...............................

어제 블로그를 열심히 써야한다는 말을 굿모닝 세션에서 한 시간을 들었는데, 어제 도저히 피곤해서 못쓰고 자버렸다....

그래서 그냥 어제가 오늘인 척 하면서 썼다... 🫠 ...

모르는 척... 자연스러운 척..... 🫥

profile
어쩌다보니 tmi뿐인 블로그😎

0개의 댓글