Java/java study
-
Java - 클래스패스(ClassPath)Java/java study 2022. 1. 23. 17:21
클래스패스(ClassPath) 클래스를 찾기위한 경로이다. JVM이 프로그램을 실행할 때, 클래스 파일을 찾는데 기준이 되는 파일 경로를 말한다. 소스 코드(.java)를 컴파일하면 바이트 코드(.class)로 변환이 되는데 java 또는 jre으로 이 바이트 코드 파일에 포함된 명령어를 실행하려면 먼저 이 바이트 코드 파일을 찾아야 한다. 이때 바이트 코드(.class) 파일을 찾을 때 classpath에 지정된 경로를 사용한다. 클래스패스는. class 파일이 포함된 디렉토리와 파일을 콜론으로 구분한 목록이다. java runtime은 이 classpath에 지정된 경로를 모두 검색해 .class 파일을 찾는다. 클래스패스를 지정할 수 있는 방법 java runtime 에 -classpath 옵션 사..
-
Java - package 키워드, import 키워드와 접근제어자(Access Modifier)Java/java study 2022. 1. 23. 17:02
package 클래스의 묶음으로서 하나의 디렉토리(폴더)이다. 패키지는 클래스를 유일하게 만들어주는 식별자 역활을 한다. 클래스의 전체 이름은 "패키지명 + 클래스"이며 FQCN(Fully Qualified Class Name)이라고 한다. ex) String 클래스의 패키지 : java.lang, FQCN : java.lang.String 패키지가 상, 하위로 구분되어 있다면 도트( . )를 사용하여 표현한다. 비슷한 성격의 자바 클래스들을 모아서 폴더 단위로 관리하기 때문에 유지 보수가 용이해진다. 패키지 이름 명명 규칙 패키지 이름은 모두 소문자여야 한다. 자바의 예약어를 사용하면 안된다.(int, static 등) 빌트-인 패키지(Built-in Package) 자바 가상머신에 의해 자동포함처리되..
-
Java - Object 클래스Java/java study 2022. 1. 16. 19:01
Object 클래스 모든 클래스의 최상위 클래스이며 각 클래스들은 정의할 때 명시적으로 Object 클래스를 상속받게 된다. Object 클래스는 기본적으로 클래스들이 필요한 메서드들이 구현되어 있으며 명시적으로 Object 클래스를 상속받기 때문에 해당 메서드들을 이용할 수 있다. 메서드 설명 boolean equals(Object obj) 두 객체가 같은 지 비교 String toString() 객체의 문자열을 반환 protected Object clone() 객체를 복사 protexted void finallize() 가비지 컬렉션 직전의 객체의 리소스 정리 Class getClass() 객체의 클래스형을 반환 int hashCode() 객체의 코드값을 반환 void notify() wait된 스레..
-
Java - 추상 클래스(Abstract Class)Java/java study 2022. 1. 16. 18:51
추상 클래스(Abstract Class) 추상 메서드를 0개 이상 포함하는 클래스 추상 클래스는 인스턴스를 생성할 수 없다. 추상 클래스를 상속받는 하위 클래스를 이용하여 인스턴스를 생성한다. 추상 클래스의 추상 메서드는 오버라이딩에 대한 강제성을 부여 된다. 클래스가 설계도라면, 추상 클래스는 미완성 설계도라고 할 수 있다. 클래스가 미완성이라는 뜻은 멤버의 개수에 관계된 것이 아닌, 단지 미완성 메서드(추상 메서드)를 포함하고 있다는 의미이다. abstract class AbstractClass{ abstract void printImp(); abstract int sum(int x, int y); void toString(){ return "toString 메서드 호출"; } } class subC..
-
Java - 다이나믹 메서드 디스패치(Dynamic Method Dispatch)Java/java study 2022. 1. 16. 18:36
Java - 메서드 오버로딩과 오버라이딩 :: 울타리 (tistory.com) Java - 메서드 오버로딩과 오버라이딩 메서드 오버로딩과 오버라이딩 오버로딩(Overloading) 오버로딩(Overloading) 이란? 사전적으로 '과적하다.'라는 뜻으로 Java에선 하나의 메서드 이름으로 여러 기능을 구현할 수 있도록 오버로딩(Over jddng.tistory.com 다이나믹 메서드 디스패치를 이해하기 위해서는 우선 오버라이딩에 대해 알아야한다. 다이나믹 메서드 디스패치(Dynamic Method Dispatch) 다이나믹 메서드 디스패치란 어떤 메서드를 호출할지 결정하여 실제로 실행시키는 과정이다. 자바는 컴파일 시에는 생성할 객체 타입에 대한 클래스 정보를 보유하고, 런타임 시 객체를 생성한다. 따..
-
Java - 상속과 super 키워드Java/java study 2022. 1. 16. 18:06
상속 class SubClass extends SuperClass{ ... } 상속이란 상위 클래스에서 정의한 필드와 메서드를 하위 클래스도 동일하게 사용할 수 있도록 물려받는 것을 말한다. 상속을 이용하면 코드의 중복을 피해주고 코드의 재사용성을 통해 간결성을 확보해준다. 자바에서는 다중 상속을 허용하지 않는다. 그 이유는 다중 상속을 하면 상속받는 복수의 부모 클래스에 중복되는 필드나 메서드가 존재하는 경우, 같은 클래스를 두 번 이상 상속받는 경우 등 여러 문제가 발생하여 부모 클래스에 접근할 방법이 애매해지는 경우가 발생한다. 이와 같은 이유로 자바에서는 단일 상속만 허용한다. 상속의 특징 다중 상속을 지원하지 않는다. 모든 클래스는 암묵적으로 Object를 상속받는다. 다단계 상속(Multi-L..
-
Java - 생성자(Constructor)와 this 키워드Java/java study 2022. 1. 9. 16:08
생성자 생성자(Contructor) 란? 객체를 생성할 때 호출되며 객체의 초기화를 담당한다. 디폴트 생성자 : 선언된 생성자가 없을 때 컴파일러가 자동으로 만들어주는 생성자. (소스 X / 매개변수 X) 기본 생성자 : 매개변수가 없는 생성자, 객체 변수의 default 초기화를 해준다. (소스 X / 매개변수 X) 매개변수를 갖는 생성자 : 매개변수가 있는 생성자, 매개변수로 객체 변수 값을 초기화해준다. (소스 O / 매개변수 O) public class Person { private String name; private int age; // 작성된 생성자가 없을시 컴파일러가 자동으로 넣어주는 생성자 public Person() {} // 기본 생성자 public Person() { System.o..
-
Java - 메서드 오버로딩과 오버라이딩Java/java study 2022. 1. 9. 15:35
메서드 오버로딩과 오버라이딩 오버로딩(Overloading) 오버로딩(Overloading) 이란? 사전적으로 '과적하다.'라는 뜻으로 Java에선 하나의 메서드 이름으로 여러 기능을 구현할 수 있도록 오버로딩(Overloading)이 가능하다. 오버로딩(Overloading) 조건 메소드의 이름이 같아야 한다. 매개변수의 개수나 타입이 달라야 한다. 매개변수의 순서가 달라야 한다. 리턴 값과 접근 지정자가 달라도 오버로딩의 조건이 성립 안된다. public class Overloading { // 접근 지정자와 리턴 타입이 달라도 오버로딩 조건에 성립이 안된다. public void test() {} protected int test() { return 0;} // 오버로딩은 매개변수의 개수가 다르면 ..