JAVA 66

Object 클래스 객체 해시코드(hashCode())

id가 같을 경우 완전한 논리적 동등으로 만들기 위해서 해시코드를 사용해야한다. // 객체비교 : 중요. //객체비교의 동작메커니즘.(자바에서 객체가 동일한지 아닌지를 내부적으로 아래와 동작이 된다.) // 해시코드 값이 다르면 서로다른 객체로 판단을 하고, 해시코드 값이 같으면 equals()메소드로 다시 비교한다. // equals()메소드가 true이면 동일한 객체로 보고, false면 다른객체로 보게된다. // hashcode()메소드와 equals()메소드를 재정의를 안하면, 객체비교는 Object클래스의 설계 원리대로 객체비교작업이 일어나다. // 재정의를 하면, 내가 원하는 대로 비교를 해서, 객체비교작업이 일어난다. public class Key { public int number; pub..

JAVA 2022.10.07

Object 클래스 equals메소드

기본적으로 == 연산자와 동일한 결과 리턴 (번지 비교) 오버라이딩 필수 논리적 동등: 같은 객체이건 다른 객체이건 상관없이 객체 저장 데이터 동일 Object의 equals() 메소드를 재정의하여 논리적 동등 비교할 때 이용 // 모든 클래스들은 Object클래스를 자동으로 상속받는다. public class Member /* extends Object */ { public String id; // 필드선언 public Member(String id) { //생성자 추가 this.id = id; // 외부에서 id 받아 초기화 } // equals 재정의 @Override public boolean equals(Object obj) { if(obj instanceof Member) { // 강제 타입변..

JAVA 2022.10.07

제네릭 메서드

package sec04_exam01_generic_method; // 제네릭 클래스 // : Integer public class Box { private T t; // 필드 Integer t: public T get() { return t; } // 메소드 Integer get(); public void set(T t) { this.t = t; } // 메소드 set(Integer t) } package sec04_exam01_generic_method; public class Utill { /* 제네릭 메소드 문법구성 public static 리턴타입 메소드명(타입 매개변수){ return 변수; } 일반메소드 문법구성 public static 리턴타입 메소드명(타입 매개변수) { return 변수..

JAVA 2022.09.29

제네릭 타입

타입을 파라미터로 가지는 클래스와 인터페이스 선언시 클래스 또는 인터페이스 이름 뒤에 부호를 붙임 사이에는 타입 파라미터 위치 타입 파라미터 일반적으로 대문자 알파벳 한 문자로 표현 개발 코드에서는 타입 파라미터 자리에 구체적인 타입을 적어야한다 package sec02_exam02_generic_type; // 제너릭 클래스 public class Box { private T t; public T get() {return t;} // 리턴 get 메소드 public void set(T t) { this.t = t;} // set 메소드 } package sec02_exam02_generic_type; public class BoxExample { // Box 클래스 T -> String 으로 변환 pu..

JAVA 2022.09.29

컬렉션 프레임웍 List

ArrayList 기존의 vector를 개선한 것으로 구현원리와 기능적으로 동일 vector는 자체적으로 동기화 처리가 되어 있다 List인터페이스를 구현하므로, 저장순서가 유지되고 중복을 허용한다. 테이터의 저장공간으로 배열을 사용한다.(배열기반) ArrayList의 메서드 ArrayList() 기본 생성자 ArrayList(Collection c) 매개변수로 어떠한 컬렉션을 주면 컬렉션을 저장하는 ArrayList ArrayList(int initialCapacity) 배열의 길이 예제 package sec02.exam01_arraylist; import java.util.ArrayList; import java.util.List; public class ArrayListExample { public..

JAVA 2022.09.27

객체지향 추상 클래스, 추상 메서드

미완성 설계도. 미완성 메서드를 갖고 있는 클래스 abstract class Player { // 추상클래스 (미완성 클래스) abstract void play(int pos); // 추상메서드 (몸통 {}이 없는 미완성 메서드) abstract void stop(); // 추상 메서드 } 다른 클래스 작성에 도움을 주기 위한 것 ( 인스턴스 생성 불가 ) Player p = new Player(); // 에러 추상 클래스의 인스턴스 생성 불가 상속을 통해 추상 메서드를 완성해야 인스턴스 생성가능 class AudioPlayer extends Player { void play(int pos) { /* 내용 생략 */ } // 추상메서드를 구현 void stop() { /* 내용 생략 */ } // 추상메..

JAVA 2022.09.26