2022-05-11(Java_OOP기초2)

이상수·2022년 5월 11일
0

TIL Java/Git/etc

목록 보기
11/17
post-thumbnail
  1. 시작하게 된 계기 및 다짐 😮
  • 이번 코드스테이츠의 백엔드 엔지니어링 개발자 부트캠프에 참여하게 되면서 현직개발자 분들의 빠른 성장을 위한 조언 중 자신만의 블로그를 이용하여 배운 것 들을 정리하는게 많은 도움이 된다 하여 시작하게 되었다.

    • 그 날 배웠던 것을 길지 않아도 좋으니 정리하며 복습하는 습관 기르기
    • 주말에 다음주에 배울 내용들을 예습
    • 코딩 문제와 java코드들은 꾸준히 학습
  1. 학습 목표 😮
목표결과
생성자의 이해와 활용O
생성자의 매개변수 유무(오버로딩)O
this와 this()O
  1. 정리

생성자


생성자 
 1. 첫번째 생성자는 클래스의 이름과 같아야함
 2. 생성자는 리턴 타입이 존재하지 않음 (Void 사용 x)
 3. ★ 하위 클래스 생성자는 언제나 상위 클래스 생성자를 생성함(super()가 없을시 자동생성)
 4. 생성자는 인스턴스와 될 때 인스턴스변수들을 초기화 시키는 역할
 5 . new 키워드를 통해 생성자를 호출, (자식 클래스의 경우 부모클래스 생성자super()를 통해 부모 객체도 또한 생성)
 ★★ 자식 클래스의 heap 메모리 영역 내에 부모 클래스의 멤버의 인스턴스가 포함되어 있어 hashCode가 자식과 부모가같음

★★ 클래스를 만들 때는 자동으로 기본 생성자를 생성하는 것을 습관화하는 것이 바람직합니다.



_기본 생성자 : 매개변수가 없는 생성자 (선언하지 않을 경우 컴파일러가 자동적으로 생성)
  -ex) 클래스명 (){};
_생성자(매개변수가 있는_ 기본생성자 오버로딩)
  -ex) public 클래스명(타입 변수명, 타입 변수명){
      		this.변수명 = 변수명;
       }

★ 기본 생성자 없이 매개변수가 있는 생성자만 만들 시, 아무것도 없는 기본 생성자는 사용불가

this()
 - 클래스 생성자에서 다른 생성자를 호출 할 시 사용
 - ★ 생성자는 this() 메서드는 항상 클래스 내 첫줄에 있어야 사용가능

this
 - 클래스 내 필드 멤버를 호출 할 시 사용한다.
 - 생성자의 매개변수와 클래스 내 필드의 변수가 같을시 구분하기 위해 사용
 
 ex)    public test(String model, int num){
	this.model = model;
	this.num = num; 
             (클래스 멤버)   =   (매개변수)
         }






생성자_예제코드


public class Test{
	public static void main(String[] args){
    	Car car1 = new Car();
        car1.name = "mustang";
        ...
        
        Car car2 = new Car("ferrari", "red");
    }
}

class Car{
	String name;
    String color;
    
    Car(){System.out.println("show");};
    Car(String name, String color){
    	this();
    	this.name = name;
        this.color = color;
    };
}






  1. 피드백 😮
  • 자바의 클래스를 사용하기 위한 기본설정인 생성자를 배웠는데 기본 생성자를 오버로딩하며 매개변수가 있는 다양한 생성자를 생성할 수 있다.
  • 생성자에서 사용하는 this = 해당 클래스 필드,변수 <> this() = 해당 클래스의 기본생성자를 의미한다.
  1. 앞으로 해야 될 것 😮
  • 매일 꾸준히 할 것
    • 꾸준히 velog 작성
    • Java 언어 및 Algorithm 공부(Coding-Test)
    • 틈틈히 운동 하기

  • 내일 해야 할 것
    • java 클래스 사용에서 빼놓을 수 없는 상속,캡슐화 이해
    • 데이터 은닉을 위한 접근제어자 private 과 getter setter 메서드
profile
Will be great Backend-developer

0개의 댓글