본문 바로가기

전체 보기81

[JAVA] 인터페이스(특징, 형식과 구현), 상속과 인터페이스의 차이점 인터페이스정의인터페이스는 구현 클래스(하위 클래스)가 준수해야 하는 메서드를 정의함인터페이스에서는 구현에 대한 세부 사항을 정하지 않고, 구현 클래스(하위 클래스)가 따라야 하는 계약을 지정함 인터페이스의 용도인터페이스를 구현하는 하위 클래스가 인터페이스에 선언된 추상 메서드(불완전한 메서드)들을 강제로 구현하게 하기 위해 사용하위클래스에서 상위 클래스의 추상 메서드를 오버라이딩(@Override)하여 구현하도록  강제함  인터페이스의 특징1. 추상 클래스가 발전된 개념이므로, 인스턴스 생성(new 연산자로 생성)이 불가함인터페이스 내에는 생성자가 없기 때문에(상수와 추상메서드만 있음)new 연산자를 사용하여 인스턴스 생성이 불가함2. 인퍼페이스의 멤버로는 상수와 .. 2024. 4. 22.
[JAVA] static 멤버(static 필드, static 메서드) 정적 멤버(static member, class member) 정의 클래스에 소속된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메서드 클래스에 소속된 멤버이기 때문에 클래스 멤버라고 함 특정한 인스턴스에 속해 있는 멤버가 아님 즉, 인스턴스와 무관함 종류 static 필드(class 필드) static 메서드 특징 class StaticTest { static int count; // static 필드 static void printHello() { // static 메서드 System.out.println("hello"); }​ } 클래스의 인스턴스를 생성하지 않더라도 static 멤버에 접근이 가능 즉, 클래스가 정의만 되어도 static 메서드와 static 필드에 접근이 가능 클래스명과.. 2024. 4. 22.
[JAVA] final 지정자(클래스, 메서드, 변수에 지정하기) final 정의 금지의 의미를 가짐 용도 클래스 : 클래스의 상속을 금지 메서드 : 메서드의 오버라이딩을 금지 필드 : 값의 변경을 금지, 상수(constant)로 사용하겠다는 의미 클래스에 final 지정하기 클래스명에 final을 지정하면, 해당 클래스는 자식 클래스에 상속이 금지 final class 클래스명 { } 예제 메서드에 final 지정하기 final로 지정한 메서드를 자식 클래스에서 오버라이딩 하면 에러 발생 final 반환타입 메서드명( ) { } 예제 변수에 final 지정하기 변수의 값을 금지한다는 뜻 즉 상수(constant)로 사용하겠다는 뜻 [ 상수 ] - 프로그램 실행 후 ~ 종료까지 일정한 값을 유지 - 모든 인스턴스에서 동일한 값을 공유 [ JAVA에서 상수의 형식 ] p.. 2024. 4. 22.
[JAVA] 싱글톤 패턴(만드는 방법, 사용하는 이유, 장단점) 싱글톤 정의 특정 클래스에 대해 단 1개의 인스턴스(객체)만 생성하여, 이를 공유하여 사용하기 위한 패턴 싱글톤을 사용하는 경우 프로그램에서 1개의 클래스 인스턴스(객체)만 존재해야 하는 경우 필요할 때마다 객체를 생성하는 것이 아니고 1개의 인스턴스(객체)만 메모리에 생성하여, 전역에서 이를 공유하여 사용할 수 있게 함 싱글톤 클래스를 만드는 방법 싱글톤 패턴을 적용할 경우, 2개 이상의 인스턴스가 존재할 수 없기 때문에 제약 조건이 있음 1. 인스턴스를 생성할 클래스의 생성자와 멤버변수(필드)는 private로 선언 싱글톤으로 사용될 클래스의 생성자는 private(접근 제한자)로 선언이 돼 있어서 외부 클래스에서 객체를 생성할 수 없음 즉, 외부 클래스에서 new 연산자를 통한 인스턴스 생성이 불가.. 2024. 4. 22.
[JAVA] 메서드 오버라이딩, 오버로딩과 오버라이딩 메서드 오버라이딩(method overriding)개념상속 관계에 있어서부모 클래스에 정의되어 있는 메서드를 자식 클래스에서 상속 받아서, 메서드의 선언부는 같고, 구현부의 내용만 다르게 재정의하여 사용하는 것즉, 상속 받은 부모 클래스의 메서드를 재정의하여 사용하는 것  특징자식 클래스는 부모 클래스의 private 멤버를 제외한 모든 메서드를 상속 받아서 사용할 수 있음상속받은 메서드는 그대로 사용해도 되고,필요한 동작을 위해서 재정의하여 사용할 수도 있음기존의 메서드를 재정의해서 사용하는 것이 메서드 오버라이딩  오버라이딩의 조건오버라이딩은 메서드의 동작만을 재정의 하므로, 메서드의 선언부는 부모 클래스의 메서드와 완전히 같아야 하고기존 메서드의 구현부만 재정의하여 사용부모 클래스의 메서드보다 접근.. 2024. 4. 21.
[JAVA] int형 정수에서 각 자리수 값 가져오기 나눗셈 연산을 이용해서 구하는 방법 숫자를 10으로 반복해서 나누고 10으로 나머지 연산(%)을 하여 얻은 값으로, 일의 자리의 값을 구할 수 있음 int n = 12345; int a, b, c, d, e; //각각 천의자리, 백의자리, 십의자리, 일의자리 ---------------------------------------------------- e = n % 10; (나머지) n /= 10; (몫) ---------------------------------------------------- e = 12345 % 10 // 5 n = 12345 / 10 // 1234 d = 1234 % 10 // 4 n = 1234 / 10 // 123 c = 123 % 10 // 3 n = 123 / 10 //.. 2024. 4. 21.