java026-1

제로·2022년 9월 19일
0

Java basic

목록 보기
26/45
post-custom-banner

자바 API 도큐먼트

  1. 자바에서 기본적으로 제공하는 라이브러리
    프로그램 개발에 자주 사용되는 클래스 및 인터페이스의 모음
  2. API 도큐먼트
    • 쉽게 api를 찾아 이용할 수 있도록 문서화한 것
    • html 페이지로 작성되어 있어 웹브라우저로 바로 볼 수 있다.

java.lang 패키지

  1. 자바 프로그램의 기본적인 클래스를 담은 패키지
  2. 포함된 클래스와 인터페이스는 import 없이 사용 가능

Object 클래스

  1. 자바의 최상위 클래스
  2. 객체 비교 equal() 메서드
    1) 기본적으로 == 연산자와 동일한 결과를 리턴(주소값 비교)
    2) 논리적 동등을 위해 오버라이딩 해서 사용한다
    ch) 논리적 동등 : 객체의 value 값이 동일한 것
Member m1 = new Member();
Member m2 = new Member(); // 서로 다른 두 객체의 주소값은 다르다
System.out.println(m1==m2); // false
System.out.println(m1.equals(m2)); // false, 오버라이딩하지 않은 equals는 주소값을 비교하기 때문에 false 출력
class Member{}


class Member1{
	private String name;
    
    public Member(String name) {
		this.name = name;
	}

	@Override
	public boolean equals(Object obj){ // equals 오버라이딩
    	if(obj instance of Member1){ // 같은 클래스를 참조하는 지 확인
        	Member1 m1 = (Member1) obj;	// 속성 비교를 위해 type casting 
        	if(this.name.equals(m1.name)){
            	return true;
            }
        }
        return false;
    }

  1. 해시코드 hashCode()
    1) 해시코드
    - 객체의 메모리 번지를 이용해 식별할 수 있는 하나의 정수값을 만들어 리턴 한 것
    2) 논리적 동등 비교시 hashCode() 오버라이딩의 필요성
    - 컬렉션 프레임워크의 HashSet, HashMap, HashTable과 같은 클래스는
    두 객체가 동등한 객체인지 판단할 때 사용된다.
Product p1 = new Product("사과",3000);
Product p2 = new Product("바나나",4000);
Product p3 = new Product("바나나",4000);
System.out.println(p2.hashCode()==p3.hashCode()); // true 출력

class Product{
	private String name;
	private int price;
	public Product(String name, int price) {
		this.name = name;
		this.price = price;
	}
	@Override
	public int hashCode() { // hashCode 오버라이딩
		int code = name.hashCode()+price;
		return code;
	}	
}
  1. toString()
    1) 클래스의 패키지와 클래스명 + 16진수 주소를 리턴
    2) 참조변수만 호출했을 때, 나타나는 데이터와 동일하다
    3) toString()을 재정의하면 참조변수도 동일한 값으로 변경된다.
Player p01 = new Player("홍길동",0.342);
System.out.println(p01); // 홍길동 : 0.342 출력
System.out.println(p01.toString); // 홍길동 : 0.342 출력


class Player{
	private String name;
	private double record;
	
	public Player(String name, double record) {
		this.name = name;
		this.record = record;
	}
    @Override
	public String toString() {
		return this.name+" : "+this.record;
	}	
}
profile
아자아자 화이팅
post-custom-banner

0개의 댓글