클래스로 객체를 만들어보자(2024.04.04)

YJ·2024년 4월 4일
post-thumbnail

오전 리뷰

  • 코테 해결 방법
    프로그래머스 LV 1 부터 진행
    1. 처음에는 어떻게든 풀어보려고 하기
    2. 문법만 찾아보기
    3. 답은 최대한 보지 말기

  • 코드 리뷰
    깃허브로 코드 리뷰

  • 실습: 미니 과제

수업

5. 클래스의 구성 요소

  • 클래스 구성 요소
    필드 (Field)
    메소드 (Method)
    생성자 (Constructor)

앞으로는 클래스 내의 요소들을 이렇게 부르자.
JAVA에서 정한 것 이다.

메소드 vs 함수
메소드: 클래스 내의 함수일 경우
함수: 클래스 밖의 함수일 경우

그러나,,, 자바는 모든 함수들이 클래스 내부에 있기 때문에 메소드 라고 부른다.

필드
객체가 가져야할 데이터, 상태를 저장하는 변수

선언 방법
접근제어자 타입 변수명;

사용 방법
클래스명 객체명 = new 클래스명();
객체명.필드명

클린코드 TIP: 파일 하나에 코드는 몇 줄인 것이 좋을까?
답: 200 줄 정도

메소드
클래스 안에서 특정 기능을 수행하기 위해 코드들을 따로 하나의 블록으로 묶어둔 집합을 말한다. 필요에 따라 우리는 이 집합을 호출하여 기능을 실행할 수 있다.

객체의 기능을 담당하는 코드 블록

클린코드 TIP: 코드 컨벤션
cf. 깃허브 컨벤션
약속 for 팀플 

생성자

  • 기본 생성자
    생성자를 만들지 않아도 객체 생성을 할 수 있다.

생성자 선언 이유
인스턴스 멤버의 데이터를 초기화할 수도 있다.

인스턴스 vs 객체
인스턴스 : 인스턴스는 클래스로 만든 각각의 객체
객체: 모든 인스턴스

참조
https://www.geeksforgeeks.org/difference-between-object-and-instance-in-java/

생성자 오버로딩
생성자를 여러 개 만듬으로써 필요에 따라 생성자를 선택하여 인스턴스를 생성한다.

알쓸송잡
리드미(Readme.txt, jpg, md)
markdown: ### - 웹 예쁘게 for 일반 유저
"크기, 구조 + 이모지"

프로젝트 설명: 
개요
기술 스택(순서)
설계(패키지, DB)
'주요 기능' -
이슈(고민)
해결방안

"흐름" = 포커싱

CS 공부 방법

진행한 프로젝트의 CS를 공부하자

핵심내용

오버로딩을 해야하는 이유
오버로딩과 오버라이딩은 다른 것이다.
둘 다 다형성의 의미를 가지고는 있으나, 다른 거다.

Java의 메소드 오버로딩은 클래스가 이름은 같지만 매개변수가 다른 메소드를 두 개 이상 가질 수 있도록 하는 기능입니다.

Java는 두 가지 동작을 통해 메소드 오버로딩을 지원한다.
1. 파라미터의 수를 변경함으로써
2. 파라미터의 데이터 타입을 변경하여 매개변수 수를 변경하여 오버로딩 매개변수 수를 변경함으로써 메소드를 오버로드할 수 있다.

What is Method overloading in Java?
: Method overloading은 클래스에 동일한 이름의 두 개 이상의 메서드가 있고, 매개변수들이 다른 것이다.
즉, 동일한 클래스 내에 동일한 이름의 여러 메서드를 생성하는 자바의 개념이며, 모든 메서드는 다른 방식으로 동작한다.
클래스에 동일한 이름의 메서드가 두 개 이상 생성되는 경우 이러한 유형의 메서드를 오버로드된 메서드 라고 한다.

We can easily understand about method of overloading by the below example:

아래는 정수 제곱을 계산하고 출력하는 함수이다.

public void intSquare ( int number )
{
	int square = number * number;
    System.out.println("Method with Integer Argument Called: " + square);
}

이제, double type의 값의 제곱을 찾고 싶다면, 다음과 같은 메서드를 만들어야 한다.

public void doubleSquare(double number) {
	double square = square * square;
    System.out.println("Method with double Argument Called:+squre);

비슷하게, long 타입 값의 제곱을 찾고 싶다면, 다음과 같은 또 다른 메서드를 만들어야 한다.

public void longSquare(long number){
	long square = number * number;
    System.out.println("Method with long Argument Called:+squre);

클래스와 객체 차이

인스턴스와 객체

객체 지향의 특징 : 캡슐화, 상속, 다형성

profile
dev

0개의 댓글