일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- JOIN
- 변수
- Java
- DP
- 데이터베이스
- 동적계획법
- oracle
- 반복문
- n x 2 타일링 2
- 문자열
- darkest dark
- 그대로 출력하기
- Database
- Algorithm
- Eclipse
- algoritm
- ANSI JOIN
- 알고리즘
- SQL
- 2156
- 오라클
- 10951
- 데이터길이
- 자바
- 소숫점처리
- select
- Dynamic Programming
- 입출력
- 백준
- db
- Today
- Total
목록Java/Java language (24)
Cracking Code
자식 클래스의 메서드 등을 강제할 때 추상 클래스 이외에 인터페이스를 사용할 수 있습니다. 인터페이스 추상 클래스와는 다르게 상수와 추상 메서드만 가질 수 있습니다. 상수는 public static final 키워드가 자동으로 지정되며 추상 메서드는 public abstract 키워드가 자동으로 지정됩니다. 객체 생성을 할 수 없으므로 독자적으로 사용할 수 없습니다. public interface interface_name { (public static final) data_type constant_name = value; // 상수 (public abstract) void method_name([data_type variabel1, ...]); // 추상 메서드 } public class class_n..
추상 클래스란 하나 이상의 추상 메서드를 포함하는 클래스입니다. 추상 클래스 객체 지향의 특징인 재사용성 및 유지 보수성을 향상 시키기 위해 하위 클래스가 반드기 부모 클래스의 메소드를 사용하게끔 강제할 필요성이 등장합니다. 추상 클래스는 추상 메서드를 하나 이상 포함하고 있으며 추상 메서드는 반드시 하위 클래스에서 오버라이딩해야 합니다. public abstract class class_name { // 추상 클래스 public abstract void method_name(); // 추상 메서드 } 추상 메서드는 함수의 body 없이 선언만 하여야 합니다. 그리고 추상 메서드와 추상 클래스를 선언할 때는 abstract 키워드를 사용합니다. 추상 클래스의 특징 1. 미완성 클래스 2. 구성요소 인스턴..
다형성이란 하나의 참조 변수가 다른 데이터형을 참조할 수 있는 능력입니다. 다형성 상속 관계에 있으면 다형성을 적용할 수 있고 형변환도 할 수 있습니다. 기본적으로 큰 타입이 작은 타입을 가리키는 구조입니다. E.g. public class Main { public static void main(String[] args) { Object[] objects = {"홍길동", new Man(), new Emp()}; for (Object o : objects) { if (o instanceof String) { System.out.println(o); } } } } // 실행 결과 홍길동 Object 는 자바의 최상위 클래스로 모든 클래스는 Object를 상속받아 정의됩니다. 그러므로 String 객체, M..
상속 관계에 있는 부모 클래스에 정의된 메소드를 자식 클래스에서 다시 정의한 것 메서드 오버라이딩 자바에서 자식 클래스는 부모 클래스의 private 멤버를 제외한 모든 것을 갖추고 있습니다. 상속 받은 메서드는 그대로 사용할 수도 있지만 자식 클래스에서 필요로 한다면 같은 이름과 같은 매개변수의 메서드로 다시 정의해서 사용할 수 있습니다. 오버라이딩의 조건 오버라이딩은 메서드의 동작만을 재정의하는 것입니다. 그러므로 메서드의 선언(반환 타입, 메서드 이름, 매개 변수)은 부모 클래스의 메서드와 같게 해야합니다. 접근 지정자의 경우 부모 클래스의 메서드보다 같거나 더 넓은 범위로만 지정할 수 있습니다. 예외 클래스의 경우 부모 클래스의 메서드보다 같거나 더 좁은 범위로만 지정할 수 있습니다. E.g. /..
상속은 기존 클래스의 기능을 추가하거나 재정의하여 자식 클래스를 정의하는 것을 의미합니다. 상속 객체의 관계는 같은 종류여야합니다. 상속 관계가 성립되면 자식 클래스에서는 부모 클래스의 구성을 선언 없이 사용할 수 있습니다. 단, 생성자와 private으로 지정된 속성은 사용할 수 없습니다. 자바는 단일 상속만 지원하며 자식 클래스는 하나의 부모 클래스만 상속 받을 수 있습니다. public class class_name extends p_class_name {} extends 키워드를 사용하여 부모 클래스와 상속 관계를 정의할 수 있습니다. 상속 관계의 객체 생성 순서도 Man 클래스는 Emp 클래스를 상속받은 클래스입니다. 자식 클래스의 생성자가 호출되면 부모 클래스의 생성자가 호출되어 부모 객체가 ..
자바의 this 키워드는 객체 생성 후 메모리에 올라간 자기 자신의 인스턴스를 가리킨다. this // 자기 자신의 필드 참조 this.field_name = value // 자기 자신의 생성자 참조 this(data_type1 field_name1, data_type2 field_name2, ...); 다른 클래스에서 참조 변수명을 사용하여 생성된 인스턴스를 참조할 수 있지만 자기 자신이 자신을 참조할 때는 this 키워드를 사용합니다. 멤버 변수명과 매개 변수명이 같을 경우 일반적으로 setter 메소드를 사용할 때 멤버 변수명과 받는 매개 변수명을 같게 정의합니다. 이러한 경우 🚨변수명이 중복되어 식별이 불가하기 때문에 오류가 발생합니다. 이를 분간하기 위해서 this 키워드를 사용해 자기 자신의 ..
자바 객체는 클래스를 인스턴스화할 때 호출하여 초기화하는 역할을 담당합니다. 생성자 (Constructor) 생성자를 호출하여 멤버 변수에 데이터를 초기화합니다. setter 메소드를 사용하여 초기화할 수 있지만 자바에서 생성자를 호출함과 동시에 멤버 변수를 초기화할 수 있도록 하는 편의성을 제공합니다. 따라서 일반적으로 setter 메소드는 멤버 변수에 저장된 데이터를 수정하는 역할을 담당합니다. modifier class_name([data_type variable, ...]) { [...] } 메소드와 여러가지 비슷한 특징을 가지지만 리턴 타입이 없으며 반드시 클래스와 동일한 이름으로 지정해야 합니다. 만약, 생성자를 따로 정의하지 않았다면 자동으로 기본 생성자가 생성됩니다. // 기본 생성자 pu..
자바 클래스의 필드란 클래스에 포함된 변수를 의미합니다. 필드 (Field) 클래스를 정의할 때 클래스의 속성값을 저장하기 위해 선언하는 변수들을 필드라고 합니다. 필드는 클래스 안에서 선언 위치에 따라 3가지로 구분됩니다. 지역 변수 (local variable) 인스턴스 변수 (instance variable) 클래스 변수 (class variable) class class_name { static data_type variable_name; // 클래스 변수 data_type variable_name; // 인스턴스 변수 data_type method_name() { data_type variable_name; // 지역 변수 } } 지역 변수 메소드 안에 선언된 변수를 의미합니다. 메소드가 호출될..