본문 바로가기

언어

(44)
[JAVA] 인터페이스 인터페이스란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스이다. 특징 클래스가 아니다. 갖고있는 모든 메서드가 public abstract 추상 메서드이다. 인터페이스를 상속하면 오버라이딩을 해야한다. 멤버 변수는 항상 "public static final"이다. 클래스 멤버 변수밖에 생성하지 못한다. 객체를 생성하지 않기 때문에 객체 멤버 변수가 없다. 키워드 implements 예제 코드 public interface TVimpl { void turnOn(); void turnOff(); abstract void soundUp(); public abstract void soundDown(); } class LgTV imple..
[JAVA] 추상클래스 추상클래스란 메서드를 선언해 놓고 상속을 통해 자식 클래스에서 메서드를 완성하도록 유도하는 클래스이다. 기존에 이미 많은 자식 클래스들이 있는 상태에서 나중에 이들의 부모 클래스를 정의하기 위해 탄생했다. 특징 객체를 정의하지 않는고 클래스를 정의한다. 객체 생성이 불가능하다. 객체를 생성 불가하기에 메서드 또한 호출이 불가능하다. 추상클래스의 메서드는 오버라이드를 위해 존재한다. 이 경우 메서드에 abstract를 붙인다.(오버라이드 강제) 자식 클래스는 반드시 오버라이드 해야한다. {} 메서드 바디가 존재하지 않는다. 키워드 abstract 사용 이유 객체의 정의를 막기 위함이다. 예 [추상]모양 -> 원, 네모, 세모, 별 [추상]동물 -> 강아지, 고양이, 사슴 선언 예제 abstract + cl..
[JAVA] 오버라이딩 오버라이딩의 정의 자식 클래스가 부모 클래스가 가진 함수를 재정의 하는것이다. 기존 부모 클래스가 가지는 함수는 사용하지 않겠다. 특징 함수명이 동일하고 메서드 시그니쳐도 같다. 상속과 관계가 있다. 메서드를 재정의 하는 것이다. 결과적으로 나오는 메서드는 1개이다. 예제 코드 class Point { void printInfo() { System.out.println("a"); } } class ColorPoint extends Point{ void printInfo() { System.out.println("b"); } }
[JAVA] 상속 상속이란 부모클래스(상위클래스)의 멤버를 자식클래스(하위클래스)가 상속 받아 그대로 쓸 수있도록 하는 것이다. 특징 부모 클래스가 가지고 있는 멤버 변수, 메서드를 자식 클래스가 사용이 가능하다. 자식 클래스가 가지고 있는 멤버 변수, 메서드는 부모 클래스가 사용이 불가능하다. 모든 자식 클래스의 생성자 가장 첫 줄에는 부모 클래스의 기본 생성자가 자동 호출 됩니다. 부모 클래스가 가지고 있는 멤버 변수를 초기화할 능력이 없기 때문이다. super(); private 멤버변수, 메서드는 상속이 불가능하다. 중복된 코드를 줄일 수 있다. 다형성을 구현할 수 있다. 키워드 extends 상속의 선언 class + 자식 클래스명 + extends + 부모 클래스명{} 상속의 선언 예제 // 부모클래스 A cl..
[JAVA] 클래스의 멤버변수에 static static이 붙는 경우 멤버 변수가 객체와 무관할 때 static을 붙인다. 생성자의 의한 초기화가 안되기 때문에 클래스 내에서 초기화한다. 클래스 소속의 공유자원이 된다. PI과 같이 항상 같은 변수 값을 가질 때 붙인다. 예제 코드 class Circle2 { static double PI = 3.14; }
[JAVA] 오버로딩 오버로딩이란 같은 이름의 메서드를 매개변수를 다르게 하는 것으로 정의를 확장하는 것이다. 특징 함수명이 동일하고 메서드 시그니쳐가 다르다. 상속과 상관이 없다. 함수명 중복정의를 허용한다. 예제 코드 // 종류 String type; // 반지름 int radius; // 매개변수가 숫자 하나인 생성자 Circle(int radius) { this("원",radius); } // 매개변수가 문자열하나인 생성자 Circle(String type) { this(type,1); } // 매개변수를 숫자, 문자열 둘 다 가지는 생성자 Circle(String type, int radius) { this.type = type; this.radius = radius; }
[JAVA] 생성자 생성자란 생성자는 객체가 생성될때 자동으로 호출되는 특수 목적의 멤버함수이다. 생성자 선언 예제 class Student { // 생성자 Student() { } } 생성자 특징 처음 클래스를 정의하면 JAVA가 인자 없는 기본생성자를 제공해준다. 개발자가 생성자를 1개 이상 정의하면 기본 제공을 안한다. 클래스와 이름이 같으며 리턴값을 명시하지 않는다. 멤버변수를 초기화하는 역할을 한다. 정의된 생성자 예제 class Student { Student(int a, int b) { } } 정의된 생성자를 가진 클래스 호출 예제 Student student = new Student(a,b); 생성자의 강제 초기화 값 지정 예제 특정 초기화 값을 넣고 싶을 때는 인자로 넘겨야한다. class Student {..
[JAVA] 힙(heap) 메모리 힙 메모리란 프로그램에서 동적으로 할당 된 메모리이다. 개발자의 메모리 영역이다. 특징 new 연산자로 객체를 호출시 힙 영역에 메모리가 할당된다. 장점 동적으로 메모리 할당, 해제가 주도적으로 가능하기에 메모리 누수 방지가 가능하다.