Java
-
Java 인터페이스Java 2024. 2. 25. 15:20
인터페이스(interface) 일종의 추상 클래스, 추상클래스보다 추상화 정도가 더 높다. 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 가질 수 없다. 오직 추상메서드와 상수만을 멤버로 가진다 인터페이스끼리만 상속 가능, 다중 상속 가능 선언 interface 인터페이스이름{ public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수 목록); } 제약사항 모든 멤버변수는 public static final, 생략 가능하다 모든 메서드는 public abstract, 생략 가능. (jdk1.8부터 static과 디폴트메서드는 예외) 생략된 제어자는 컴파일 시에 컴파일러가 자동으로 추가해준다 구현 class 클래스이름 implements 인터페이..
-
Java 클래스의 다양한 형태(추상 클래스, 내부 클래스, 익명 클래스)Java 2024. 2. 25. 15:16
추상클래스(abstract class) 추상메서드 조상클래스에서는 선언부만 작성하고, 주석을 덧붙여 어떤 기능을 수행할 목적으로 작성되었는지 알려줌. 실제 내용은 자손이 구현 구현부가 없어서 중괄호({})대신에 ;만 붙인다 /*주석으로 어떤 목적으로 작성했는지 설명*/ /*~~하는 메서드이다.*/ abstract 리턴타입 메서드이름(); 실제 작업내용인 구현부가 없는 메서드가 무슨 의미가 있을까? > 실제 작업 내용인 구현부보다 더 중요한게 선언부다 메서드의 이름, 작업에 필요한 매개변수, 결과로 나타날 값의 타입을 결정하는 것은 쉽지않다. 메서드를 사용하는 쪽에서는 메서드가 실제로 어떻게 구현된지 몰라도 메서드의 이름, 매개변수, 리턴타입 즉, 선언부만 알고 있으면 된다. abstract를 안적고 그냥..
-
Java 제어자Java 2024. 2. 25. 15:06
제어자(modifier) 접근 제어자 public : 제한 없음 protected : 같은 패키지 + 다른 패키지의 자손 클래스 default : 같은 패키지 private : 같은 클래스 대상 사용 가능한 제어자 클래스 public, default, final, abstract 메서드 public, protected, default, private, final, abstract, static 멤버변수 public, protected, default, private, final, static 지역변수 final 1. 외부에 불필요한, 내부적으로만 사용되는 부분을 감추기 위해 사용 만일 메서드 하나를 변경해야 한다고 할 때, 접근 제어자가 public이라면 변경 후 오류가 없는 지 테스트해야 하는 범위가 ..
-
Java ImportJava 2024. 2. 25. 15:02
improt문 컴파일러에게 소스파일에 사용된 클래스의 패키지에 대한 정보 제공 클래스의 코드를 작성하기 전에 import문으로 사용하고자 하는 클래스의 패키지를 미리 명시하면 소스코드에 사용되는 클래스 이름에서 패키지명을 생략할 수 있다. 임포트는 프로그램 성능에 전혀 영향이 없다. 컴파일러는 import문을 통해 소스파일에 사용된 클래스들의 패키지를 알아낸 다음 모든 클래스 이름 앞에 패키지명을 붙여준다 import를 많이 사용하면 컴파일 시간이 아주 조금 더 걸리긴 한다 이클립스는 컨트롤+시프트+o를 누르면 자동으로 임포트를 추가해준다 import java.util.Calendar; import java.util.Date; import java.util.ArrayList; >> import java...
-
Java 패키지Java 2024. 2. 25. 14:57
패키지 클래스의 묶음이다. 클래스 또는 인터페이스를 포함시킬 수 있다 같은 이름의 클래스더라도 서로 다른 패키지에 존재할 수 있다. 모든 클래스는 반드시 하나의 패키지에 포함되어야 한다. 패키지를 선언하지 않으면 자바에서 기본적으로 제공하는 '이름없는 패키지'에 속하게 된다 패키지 선언 클래스나 인터페이스의 소스파일 맨 위에 package 패키지명; 주석과 공백을 제외한 첫번째 문장이어야 함 C:\jdk1.8\work>javac -d . PackageTest.java package com.codechobo.book; class PackageTest{ public static void main(String args[]){ sysout("Hello World!"); } } 위의 예제를 작성한 뒤 다음과 같이..
-
Java 배열Java 2024. 2. 25. 14:43
배열(Array) - 하나의 변수로 동일하거나 호환되는(묵시적 형변환이 가능한) 타입의 값을 여러개 가질 수 있도록 하기 위해 사용한다. - 변수 선언시 타입에 대괄호([])를 활용하여 해당 변수가 배열임을 나타낸다. - 배열의 이름은 주로 복수형으로 짓는 편이다. - 가령, 정수(int)배열은 아래와 같이 선언한다. int[] numbers; 초기화 - 배열의 초기화는 인자의 나열 혹은 배열의 길이 지정 중 하나여야 한다. - 배열이 초기화된 후에는 다시 초기화하는 방법 외에 배열이 가질 수 있는 인자의 개수를 줄이거나 늘리는 것이 불가능 - 배열이 가질 인자의 나열은 아래 방식으로 한다. int[] numbers = new int[] {1, 2, 3}; 혹은 아래와 같이 컨텍스트에 따라 타입이 명확한..
-
Java 반복문, 조건문, 메서드Java 2024. 2. 25. 14:39
반복문 공통 키워드 - break : 현재 실행 중인 반복문 종료. - continue : 현재 사이클 생략하고 다음 사이클로 넘어감 for - 반복문의 기준이 되는 변수(주로 인덱스)를 활용하여 특정 구현부를 반복하고자 할 때 사용 for([변수 선언 및 초기화]; [반복 조건]; [변수 가감 및 할당]){ [구현부] } 1. for 반복문을 위한 변수를 선언 혹은 초기화한다. 2. 반복 조건이 참(true)인지 확인 a. 반복 조건이 참이면 [구현부]를 1회 실행하고 3으로 이동 b. 반복 조건이 거짓이면 for 반복문 종료 3. 변수 가감 및 할당을 실시하고 2로 돌아감 1부터 5까지의 정수를 출력하기 위해 아래와 같이 작성할 수 있다. for(int i = 1; i
-
Java 연산자Java 2024. 2. 25. 14:29
연산자 할당 연산자 - 일반 할당(=) : x = y 꼴에서 x에 y를 할당한다. - 더하기 복합 대입 연산(+=) : x += y 꼴에서 x와 y를 더한 값을 x에 재할당. x = x + y와 같다. - 빼기 복합 대입 연산(-=) : x -= y 꼴에서 x에 y를 뺀 값을 x에 재할당. x = x - y와 같다. - 곱하기 복합 대입 연산(*=) : x *= y 꼴에서 x와 y를 곱한 값을 x에 재할당. x = x * y와 같다. - 나누기 복합 대입 연산(/=) : x /= y 꼴에서 x와 y를 나눈 몫을 x에 재할당. x = x / y와 같다. - 나머지 복합 대입 연산(%=) : x %= y 꼴에서 x와 y를 나눈 나머지를 x에 재할당. x = x % y와 같다. 비교 연산자 동등(==) : x..