Java/Study (21) 썸네일형 리스트형 Ch11 기본 API클래스 - 해시코드 더보기 2021.03.23 - [Java/Study] - Ch11 기본 API클래스 - java.lang & java.util 패키지, Object 클래스 해시코드는 무엇이고, 왜 재정의해서 사용할까? equals는 논리적으로 '값'을 비교한다.다른 객체라 하더라도 같은 값을 가진다면 equals()는 true를 반환한다. 그리고 해시코드가 있다. Map컬렉션을 구현하는 HashTable과 HashMap은 Key-Value 쌍으로 객체를 보관하는 도구이다. Key가 가진 hashcode를 통해 value를 더욱 빠르게 찾아낸다. 그렇다면 해시코드란 무엇일까? 최초의 해시코드는, Object클래스의 hashCode()의 리턴값으로 객체의 참조(16진수)를 10진수로 변환시킨 값이다. 각 객체에 대응되는 고.. Ch11 java.lang & java.util 패키지(Object, System, Class 클래스) 보호되어 있는 글입니다. Ch10 예외처리 네트워크연결 - 데이터베이스연결 - 사용 - 에러 - 데이터베이스닫기 - 종료 데이터베이스를 사용하고 나서 닫는게 매우 중요하다. 예외처리를 통해 프로그램 종료 이전 데이터베이스를 닫을 수 있게 해야한다. 예외 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인한 오류로 예방할 수 있음 예외처리를 통해 정상 실행 상태가 유지되도록 할 수 있다. cf.에러:하드웨어의 잘못된 동작 또는 고장으로 인한 오류, 정상 실행 상태로 돌아갈 수 없음 예외처리 에러를 수정하는 게 아니라 에러가 나면 처리하지 못하는 부분에 대해서 프로그램하는 것으로, 선택이 아닌 필수이다. 예외의 종류 자바에서는 예외를 클래스로 관리한다. JVM은 프로그램 실행중 예외가 발생하면 해당 예외 클래스로 객체를 생성한다. 그리고나서 예외.. Ch7 상속 - 다형성 및 추상클래스 다형성 (polymorphism) 같은 타입이지만 실행 결과가 다양한 객체를 이용할 수 있는 성질 코드측면에서 보면, 다형성은 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 해준다. 다형성에 대한 이해 더보기 자식객체는 부모 객체의 속성과 기능을 그대로 상속받아 이용하고, 재정의할 수 있다. 즉 자식객체는 부모 객체를 모두 가지고 있되, 좀 더 다양한 특성을 가지고 변형된다. 이로 인해 부모타입은 자식 객체를 저장할 수 있는데, 코드 측면으로 볼 때 클래스(자식→부모) 간의 변화(형변환)이 이루어지는 것이다. 이를 두고 하나의 타입에 여러 객체를 대입한다고 하고, 부모 타입으로의 자동형변환이 이루어진다고 한다. 그렇다면, 단순히 상속받은 멤버를 변형하여 자식 클래스로 객체를 생성.. Ch7 상속 자식(하위,파생) 클래스가 부모(상위) 클래스의 멤버를 물려받는 것 상속의 특징 1. 상속을 허용하지 않는 클래스(부모로 사용 불가능한 클래스) : final class 클래스명으로 선언 2. 단일상속만 가능하다 : 하나의 클래스로부터 부모 클래스는 하나만 존재할 수 있다. 자바언어 : 단일상속 class A extends P { } C#,C++언어 : 다중상속 class B extends P1,P2 { } Java C#변환 3. 하나의 부모 클래스에 여러 자식 클래스가 있을 수 있지만, 하위 클래스들은 서로 무관하다. 4. 상속관계를 자손, 부모, 조부모 등 1:1로 계속 상속할 수 있다. 5. 상위클래스는 하위 클래스의 어떤 멤버도 호출,사용할 수 없다. 자식클래스에 접근하고 싶다면 일반적인 타클래스.. Ch6 - 패키지, 접근제한자 패키지 클래스를 체계적으로 관리하기 위한 파일 시스템의 폴더와 같다. 패키지를 선언하면 클래스를 컴파일하는 과정에서 자동적으로 폴더를 생성한다. 또한 패키지는 클래스를 유일하게 만들어주는 식별자 역할을 한다. 클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스로 인식한다. 클래스의 전체이름 이름 : [상위패키지.]하위패키지.클래스명 com.mycompany.Car -> 실제 파일 시스템 : com\mycompany 폴더에 Car.class 저장되어 있음 클래스를 이동할 경우에는 패키지 전체를 이동시켜야 한다. 더보기 패키지의 이름규칙 1. 숫자로 시작할 수 없고, 특수문자는 _, $만 쓸 수 있다. 2. java로 시작하는 패키지는 자바 표준 API에서만 사용하므로 사용해선 안된다. 3. 모두 소문자.. Ch6 클래스 - final 필드와 상수 final 필드 초기값이 저장되면 이것이 최종값이 되어 프로그램 실행 도중에 수정할 수 없다. final 타입 필드 [ = 초기값]; final 필드의 초기값을 줄 수 있는 방법은 1. 필드 선언 시 2. 생성자에서(복잡한 초기화 코드 혹은 객체 생성 시 외부 데이터로 초기화) 두 가지이다. 만약 초기화되지 않은 final이 남아있으면 컴파일 에러가 발생한다. 객체마다 저장되고, 생성자의 매개값을 통해서 초기값이 여러 가지 값을 가질 수 있다. package p4; public class Person { final String nation = "Korea"; final String ssn; String name; public Person(String ssn, String name) { this.ssn =.. Ch6 클래스 - 정적 멤버와 Static 정적멤버와 Static - Static 이 붙어있는 것들 - 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드(정적 필드, 정적 메소드), 클래스 멤버라고도 한다. - 정적멤버는 객체 내부가 아닌 메소드영역에 존재한다 - 정적 멤버는 객체를 생성하지 않고 클래스로 바로 접근해 사용한다. 컴파일 시에 클래스로더가 바이트코드를 로딩해서 메소드 메모리 영역에 적재하기 때문에 컴파일만 하면 자동으로 메모리에 올라간다. 메모리 생성 방법 "어떤 변수든 어디든 메모리에 올라가야 한다." 1. 힙메모리영역 : new 2. 스택 메모리: 변수선언 int a; Student s; (참조변수도 스택에 올라간다.) 3. 메소드영역 : 메소드호출시, 컴파일시(static @) ; 컴파일이 끝나면 클.. 이전 1 2 3 다음