본문 바로가기

Programming/Java83

[F-Lab 모각코 챌린지 13일차] Java : 인터페이스와 추상클래스 학습 목표 인터페이스나 abstract 클래스를 사용해야 하는 이유 자바의 클래스는 다중 상속이 불가능한 이유와 인터페이스는 다중 구현이 가능한 이유 학습 결과 요약 인터페이스나 abstract 을 사용하면 설계 단계에서 미리 클래스를 정의할 수 있다. 그리고 외부에 노출되는 것을 미리 정의 가능하다. 인터페이스는 구현된 메서드를 갖을 수 없고 abstract 는 가능하다. 인터페이스에 default methoed 를 선언할 수는 있지만 추상클래스와는 목적이 다르다고 한다. 학습 내용 인터페이스를 사용하는 이유 설계 설계 단계에서 기능이나 메서드, 변수 명을 미리 정의한다. 개발할 때 기능 구현에만 집중 가능 메서드 이름과 매개 변수 선언을 어느 정도 통일화 가능 선언과 구현을 구분할 수 있음 외부에 노.. 2023. 6. 15.
[F-Lab 모각코 챌린지 11일차] Java : 자바의신 10장-2 접근 제한자 protected는 같은 패키지에 있는 클래스거나 상속 관계일 경우에 클래스에 접근을 허용한다. D는 A 를 상속하지만 다른 패키지에 있기 때문에 D는 A의 protected 생성자에 접근할 수 없다. 그러나 상속 관계로는 접근이 가능하기 때문에 super() 는 허용이 된다. 클래스 A, D 는 상속 관계지만 서로 다른 패키지에 있다. 타입 변환과 다형성 다형성이란 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질을 말한다. 자바는 다형성을 위해 부모 클래스로 타입 변환을 허용한다. 타입 변환이란 데이터 타입을 다른 데이터 타입으로 변환하는 행위를 말한다. 자동 타입 변환이란 프로그램 실행 도중에 자동으로 타입 변환이 일어나는 것을 말한다. 자식은 부모의 것을 상속받기 때문에.. 2023. 6. 13.
[F-Lab 모각코 챌린지 10일차] TIL : 자바의신 10장 학습 목표 자바의 상속 다형성 형변환 학습 결과 요약 학습 내용 상속 개념 한 클래스가 다른 클래스를 확장(extend) 하는 것으로 상속을 하면 확장 대상 클래스의 public , protected 로 선언된 모든 필드와 메서드에 모두 접근 가능하다. 단, private, default 접근 제한을 갖는 모든 필드와 메서드는 상속 대상에서 제외 된다. 확장한 클래스를 자식 또는 하위 클래스라고 부르며 확장 당한 클래스를 부모 또는 상위 클래스라한다. 상속 선언 방법 class Child extends Parent { } extends 예약어 뒤에 확장할 클래스 이름을 적는다. 다중 상속은 불가능하다. 상속을 하면 코드 재사용이 가능하다. 상속 관계 생성자 객체는 인스턴스화 해야 사용 가능하다. 그럼 상.. 2023. 6. 12.
[F-Lab 모각코 챌린지 9일차] TIL : 자바의신 9장 학습 목표 자바의 패키지와 접근 제어자 학습 결과 요약 패키지 선언은 소스의 가장 첫줄에 있어야 하며 java 로 시작해서는 안된다. 다른 패키지에 접근할 수 있는 경우는 같은 패키지에 있는 클래스들과 java.lang 패키지에 있는 클래스들만 찾을 수 있다. 이것들 이외의 패키지에 접근하려면 import 예약어를 사용한다. 접근 제어자는 public, protected, package-private, private 이 있으며 순서대로 접근 범위가 좁아진다. protected 와 packate-private 의 차이는 protected 는 상속받은 경우에 접근이 가능하다. 소스파일 안에 여러개의 클래스를 선언할 수 있는데, 만일 public 접근제한자의 클래스를 선언할 경우엔 반드시 소스 파일명과 일치해.. 2023. 6. 11.
[F-Lab 모각코 챌린지 8일차] TIL : 자바의신 8장 학습 목표 참조 자료형의 생성자와 메서드 call by value & call by Reference 학습 결과 요약 참조 자료형의 생성자는 만들어 주지 않으면 컴파일 시 자동 생성된다. 단 매개변수가 있는 생성자가 하나도 없을 경우에. 메서드 오버로딩은 같은 역할을 하는 메서드는 같은 이름을 가져야한다는 모토에서 시작되었으며 매개 변수의 타입과 순서만 다르면 같은 이름의 메서드를 여러개 만들 수 있다. pass by value 는 복제된 값이 넘겨져서 넘겨받은 메서드에서 무슨짓을 해도 원래 값은 변하지 않는다. pass by reference 는 객체의 주소값이 넘겨져서 넘겨 받은 메서드에서 변경을 하면 그대로 데이터가 바뀐다. static 메서드는 클래스에 고정된 멤버로서 객체를 초기화하지 않아도 사.. 2023. 6. 10.
[F-Lab 모각코 챌린지 7일차] TIL : hashCode, 자바의신 7장 hashCode() hashCode() 메서드는 객체의 해쉬 코드 값을 리턴한다. 객체 해쉬코드란 객체를 식별할 하나의 정수값을 말한다. Object.hashCode() Object.hashCode() 는 JNI 에 속한 네이티브 메서드를 통해 해쉬코드를 만든다. 객체의 메모리 번지를 이용해서 만들기 때문에 고유의 정수값을 만들 수 있다. Object.hashCode() 구현에도 지켜야 할 규칙이 있다. Java 어플리케이션이 실행 중에 equals() 재정의에 사용된 필드 값이 수정되지 않는 한, 같은 객체의 hashCode() 결과값은 몇 번을 호출하더라도 똑같아야 한다. 별개의 프로세스로 띄운 어플리케이션이라면 객체의 hashCode결과가 일관될 필요는 없다. 두 객체가 equals() 결과 동등하.. 2023. 6. 9.