[JAVA] 22-07-21 객체의 해시코드 hashCode() ☑
·
STUDY/JAVA
객체의 해시코드 객체를 식별할 하나의 정수값을 말한다. Object의 hashCode()메소드는 객체의 메모리번지(주소)를 이용해서 해시코드(int)를 만들어 리턴 *따라서 개별객체는 해시코드가 모두다르다. 논리적동등비교시 hashCode() 오버라이딩의 필요성 컬렉션 프레임워크의 HashSet, HashMap, Hashtable과 같은 (컬렉션프레임워크) 클래스는 두객체가 동등한 객체인지 판단할 때 아래와 같은 과정을 거침 따라서 논리적 동등 객체는 hashCode()가 리턴하는 값도 같아야됨 (논리적으로 동등하다는것 = 같은객체이건 다른 객체이건 상관없이 객체가 저장하고 있는 데이터가 동일함을 뜻) equals()를 오버라이딩하면 hashCode()도 오버라이딩해야한다. equals()결과가 true..
[JAVA-이것이자바다.9장] 중첩 클래스와 중첩 인터페이스 확인 문제
·
STUDY/JAVA
중첩멤버클래스에 대한 설명으로 틀린 것은 무엇입니까? 1.인스턴스 멤버 클래스는 바깥 클래스의 객체가 있어야 사용 될 수 있다. 2.정적 멤버 클래스는 바깥 클래스의 객체가 없어도 사용 될 수 있다. 3.인스턴스 멤버 클래스 내부에는 바깥 클래스의 모든 필드와 메소드를 사용할 수 있다. ✔ 4.정적 멤버 클래스 내부에는 바깥 클래스의 인스턴스 필드를 사용할 수 있다. *정적멤버클래스는 바깥클래스의 객체가 없어도 사용을 할 수 있기 때문에, 객체가 반드시 있어야 사용할수있는 바깥클래스의 필드를 정적멤버클래스 내부에 둘수없다. 로컬클래스에 대한 설명으로 틀린 것은 무엇입니까? 1.로컬클래스는 메소드 내부에 선언된 클래스를 말한다. 2.로컬 클래스는 바깥 클래스의 모든 필드와 메소드를 사용할 수 있다. ✔ 3..
[JAVA] 22-07-20 자바 API / Object 클래스 ☑
·
STUDY/JAVA
자바 API - 이미 제공되어있는 것들 . 자바에서 기본적으로 제공하는 라이브러리 예: sout ...equals...등등 https://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 docs.oracle.com java.lang 패키지 - 자바 프로그램의 기본적인클래스를 담은 패키지 - import 없이 사용 Object 클래스 다른클래스를 상속하지 않으면 암시적으로 java.lang.Object클래스를 상속 Object의 메소드는 모든 클래스에서 사용할 수 있다. 이미지출처 : 이것이자바다
[JAVA] 22-07-20 객체비교 equals() ☑
·
STUDY/JAVA
객체비교 equals() Object의 equals() 메소드 package sec03.exam01_equals; public class Member { public String id; //생성자 (클래스를 토대로 인스턴스를 처음 만들때 세팅하는 것) //String 매개변수 id를 받아서 필드값 id에 할당(전달, 대입) public Member(String id) { this.id = id; } /*메서드 : 이 인스턴스가 가지고있는 기능! 메서드 : Object에 있는 eauals 매서드를 재정의 오버라이딩은 상속을 받아서 재정의하는 것인데, Member은 상속 어디서? 모든클래스는 Object라는 클래스에서 시작되며, 상속을 받습니다. equals를 재정의해서 새로운 비교구문을 스스로 만들기 @ ..
[JAVA-이것이자바다.8장] 인터페이스 확인 문제
·
STUDY/JAVA
인터페이스에 대한 설명으로 틀린 것은 무엇입니까? 1.인터페이스는 객체사용설명서 역할을한다 2.클래스가 인터페이스의 모든 메소드를 오버라이딩하지않으면 추상클래스가 된다 ✔ 3.인터페이스에는 인스턴스 필드를 가질 수 있다 인터페이스는 객체를 만들수 없다. 4.구현객체는 인터페이스 타입으로 자동변환된다 인터페이스 다형성에 대한 설명으로 틀린 것은 무엇입니까? 1.필드가 인터페이스 타입일 경우 다양한 구현 객체를 대입할 수 있다. 필드의 다형성 2.매개변수가 인터페이스 타입일 경우 다양한 구현 객체를 대입할 수 있다. 3.배열이 인터페이스 타입일 경우 다양한 구현 객체들을 저장할 수 있다. ✔ 4.구현객체를 인터페이스 타입으로 변환하려면 강제타입변환을 해야한다. 자동타입변환.,, 강제타입변환 할 필요가 없다...
[JAVA] 22-07-19 예외(Exception) ☑
·
STUDY/JAVA
오류의 종류 에러 - 하드웨어의 잘못된 동작 또는 고장으로 인한 오류 프로그램 실행중 어떤원인에 의해 오작동하거나 비정상 종료된 경우. 이를 초래하는 원인을 프로그램 에러 또는 오류라고 한다. 발생시점에 따라 컴파일에러 Compile Error, 와 런타임 에러 Runtime Error 로 나눌수 있다. 외에도 논리적 에러 Logical Error가 있다. 예외 - 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인한 오류 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 * 예외는 코드로 예외처리가 가능하다. 예외처리를 한다면 정상실행상태로 유지할 수 있게 가능하다. 예외의 종류 일반예외 (컴파일체크예외) 개발자가 어떤 소스를 작성하게되면 컴파일러는 그 소스코드에 발생하는 문제점을 예측을하고..
[JAVA-이것이자바다.7장] 상속 확인 문제
·
STUDY/JAVA
final 키워드에 대한 설명으로 틀린 것은? ✔ 1.final 클래스는 부모클래스로 사용할 수 있다. 2.final 필드는 값이 저장된 후에는 변경할 수 없다. 3.final 메소드는 재정의(오버라이딩)할 수 없다. 4.static final 필드는 상수를 말한다. 오버라이딩에 대한 설명으로 틀린 것은? 1.부모메소드의 시그너처(리턴타입, 메소드명, 매개변수)와 동일해야한다. 2.부모메소드보다 좁은 접근제한자를 붙일 수 없다.(예: public 부모 → private 자식) 3.@Override 어노테이션을 사용하면 재정의가 확실한지 컴파일러가 검증한다. ✔ 4.protected 접근제한을 갖는 메소드는 다른 패키지의 자식 클래스에서 재정의할 수 없다. *있다 * protected는 같은 패키지에 있을..
[JAVA] 22-07-18 익명 객체 ☑
·
STUDY/JAVA
class는 설계도다. 경우에 따라 한번 설계하고 끝나는 것이 필요한데, 그럴때 익명객체를 사용하면된다. ★ 익명객체 - 단독생성불가 : 클래스 상속하거나 인터페이스 구현해야만 생성가능 익명객체(익명클래스) 를 사용하는 이유 1. 프로그램 내에서 일시적으로(단발성으로) 한번만 사용되어야 하는 객체일 경우 -> UI 이벤트처리, 스레드 객체 등 (단발성 이벤트 처리) 2. 재사용성이 없고, 확장성을 활용하는 것이 유지보수에서 더 불리할 때 -> 비즈니스 로직이 정말 재각각이며, 재사용성이 전혀없어 매번 클래스를 생성해야하는 비용이 더 많을때 익명 자식 객체 생성 부모클래스 [필드|변수] = new 부모클래스(매개값, ...){ //필드 //메소드 }; 중괄호블록은 부모클래스를 상속을해서 자식클래스로 만들겠..