JAVA
-
[자바의 정석] 날짜와 시간, 형식화 정리JAVA 2022. 10. 25. 01:01
Calendar Calendar는 java.util.Calendar로 import 할 수 있으며 추상클래스이다. getInstance()를 통해 구현된 객체를 얻을 수 있습니다. import java.util.Calendar Calendar cal1 = new Calendar(); // Error! 추상클래스는 인스턴스를 생성할 수 없다. Calendar cal2 = Calendar.getInstance(); // OK! Date와 Calendar간의 변환 // 1. Calendar를 Date로 변환 Calendar cal1 = Calendar.getInstance(); Date d1 = new Date(cal1.getTimeInMillis()); // Date(long date) 생성자 사용 // 2...
-
[자바의 정석] Object, String, StringBuffer 클래스 정리JAVA 2022. 10. 21. 17:28
Object Class Object class는 모든 클래스의 최고 조상이며 오직 11개의 메서드만을 가지고 있다. equals(Object obj), hashCode(), toString()은 상황에 맞게 적절히 오버 라이딩해야 한다. Object class에 있는 11개의 메서드에 대해 알아보기 protected Object clone() 객체 자신의 복사본을 반환한다. public boolean equals(Object obj) 객체 자신과 객체 obj가 같은 객체인지 알려준다. protected void finalize() 객체가 소멸될 때 가비지 컬렉터에 의해 자동적으로 호출 이때 수행되어야 하는 코드가 있는 경우에만 오버 라이딩한다. public Class getClass() 객체 자신의 클래..
-
[자바의 정석] 예외처리JAVA 2022. 10. 19. 18:31
예외처리 (Exception handling) 프로그램 오류에는 컴파일 에러, 런타임 에러로 나눌 수 있습니다. 런타임 에러에는 다시 에러(Error)와 예외(Exception)로 나뉩니다. 종류 의미 컴파일 에러 컴파일 할 때 발생하는 에러 런타임 에러 실행 할 때 발생하는 에러 런타임 에러 종류 의미 에러 (Error) 프로그램 코드에 의해서 수습될 수 없는 심각한 오류 예외 (Exception) 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 예외의 경우는 꼭 예외 처리를 해줘야한다. 예외 처리는 프로그램 실행 시 발생할 수 있는 예외의 발생에 대비한 코드를 작성하는 것을 말한다. 예외처리 구문 예외를 처리하려면 try - catch문을 사용해야 한다. try{ // 예외가 발생할 가능성이..
-
[자바의 정석] 추상클래스 인터페이스 내부클래스 정리JAVA 2022. 10. 19. 09:58
추상 클래스(Abstract class) 클래스를 설계도라고 하면 추상 클래스는 미완성된 설계도를 말하며 다른 클래스의 작성을 돕기 위하 목적으로 사용됩니다. 추상 클래스는 추상 메서드를 포함하고 있는 클래스를 말합니다. 일반 메서드는 추상 메서드를 호출할 수 있습니다. 추상 클래스는 인스턴스를 생성할 수 없습니다. abstract class Player{ // 추상 클래스 int currentPos; Player(){ currentPos = 0; } abstract void play(int pos); // 추상 메서드 abstract void stop(); // 추상 메서드 void play(){ // 오버로딩 play(currentPos); // 추상 메서드 호출 } } 추상 메서드(Abstract ..
-
[자바의 정석] 제어자 & 다형성JAVA 2022. 10. 18. 11:40
제어자(modifiers) 제어자는 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여하며 크게 접근 제어자와 그 외의 제어자로 나눠집니다. 하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있지만 접근제어자는 단 하나만 사용할 수 있다. 접근 제어자 : public, protected, default, private 그 외 제어자 : static, final, abstract, native, transient, synchronized, volatile, strictfp 그 외의 제어자 알아보기 static - 클래스의, 공통적인 static이 사용될 수 있는 곳은 멤버 변수, 메서드, 초기화 블록이다. 대상 의미 멤버변수 1. 모든 인스턴스에 공통적으로 사용되는 클래스 변수가 된다. 2..
-
[자바의 정석] 상속 & 오버라이딩 & package & importJAVA 2022. 10. 17. 18:39
상속 (Inheritance) 기존의 클래스를 재사용해서 새로운 클래스를 작성하는 것을 말하며 이렇게 작성된 클래스와 기존 클래스는 서로 부모와 자식으로 관계를 맺어지게 됩니다. 자식은 부모의 모든 멤버를 상속받습니다. (단, 생성자 및 초기화 블록은 제외됩니다.) 자식의 멤버개수는 부모보다 적을 수 없습니다. 단일 상속을 원칙으로 한다. class Point{ int x; int y; } class Point3D extends Point{ int z; } Point3D p = new Point3D(); p.x = 1; // OK p.y = 2; // OK p.z = 3; // OK 상속 관계 공통 부분은 부모에서 관리하고 개별 부분은 자식에서 관리하게 만들며 부모의 변경은 자식에게 영향을 미치지만 자식..
-
[자바의 정석] 생성자 & 변수의 초기화JAVA 2022. 10. 14. 17:13
생성자 생성자는 인스턴스가 생성될 때마다 호출되는 "인스턴스 초기화 메서드"이며 모든 클래스에는 반드시 하나 이상의 생성자가 있어야 한다. Card c = new Card(); 1. 연산자 new에 의해 메모리(heap)에 Card클래스의 인스턴스가 생성된다. 2. 생성자 Card()가 호출되어 수행된다. 3. 연산자 new의 결과로 생성된 Card인스턴스의 주소가 반환되어 참조 변수 c에 저장된다. 생성자의 조건 생성자의 이름은 클래스의 이름과 동일해야 하며 리턴 값이 없지만 void를 쓰지 않는다. class Test{ ... Test() // 매개변수 없는 기본 생성자 { // 인스턴스 초기화 작업 } Test(String kind, int number) // 매개변수 있는 생성자 { // 인스턴스..
-
[자바의 정석] 변수와 메소드 & 메소드 오버로딩 & JVM 구조JAVA 2022. 10. 14. 11:46
변수와 메소드 변수는 선언위치에 따라 종류와 범위(Scope)가 달라진다. class Variables{ // Class Area Start int iv; // 인스턴스 변수 static int cv; // 클래스 변수 void method(){ // Method Area Start int lv = 0; // 지역 변수 } // Method Area End } // Class Area End 변수의 종류 변수의 종류 선언 위치 생성 시기 클래스 변수 클래스 영역 클래스가 메모리에 올라갈때 인스턴스 변수 인스턴스가 생성될때 지역 변수 메소드 영역 메소드가 호출되었을때 변수의 특징 클래스 변수 같은 클래스의 모든 인스턴스들이 공유하는 변수이다. 인스턴스 생성없이 " 클래스명.클래스변수명 "으로 접근이 가능하..