java

    java.util 패키지

    Date 클래스 특정 시점의 날짜를 표현하는 클래스 Date 객체 안에는 특정 시점의 연도, 월, 일, 시간 정보가 저장된다. Date now = new Date(); Calendar 클래스 달력을 표현한 클래스 추상 클래스이므로 new 연산자를 사용해서 인스턴스를 생성할 수 없다. Calendar 클래스의 정적 메소드인 getInstance() 메소드를 이용하면 현재 운영체제에 설정되어 있는 시간대를 기준으로한 Calendar 하위 객체를 얻을 수 있음 Calendar now = Calendar.getlnstance(); Calendar 객체를 얻으면, 연도, 월, 일, 요일, 오전/오후, 시간 등의 정보를 얻을 수 있음 [확인 문제] package yeong.verify.exam01; import j..

    인터페이스

    인터페이스 - 객체의 사용 방법을 정의한 타입 - 개발 코드와 객체가 서로 통신하는 접점 역할 개발 코드가 인터페이스의 메소드를 호출하면 인터페이스는 객체의 메소드를 호출시킨다. => 개발 코드는 객체의 내부 구조를 알 필요가 없고 인터페이스의 메소드만 알고 있으면 됨 인터페이스 선언 인터페이스 선언은 class 키워드 대신에 interface 키워드를 사용 [public] interface 인터페이스이름 { ••• } # 인터페이스 이름 작성 방법 영어 대소문자 구분 첫 글자 대문자 나머지 소문자 interface 인터페이스이름 { //상수 타입 상수이름 = 값; //추상 메소드 타입 메소드이름(매개변수,…); } - 인터페이스는 객체로 생성할 수 없기 때문에 생성자를 가질 수 없다. 상수 필드 선언 ..

    추상 클래스

    추상 클래스 Bird.class, Insect.class, Fish.class 등의 실체 클래스에서 공통되는 필드와 메소드를 따로 선언한 Animal.class 클래스를 추상 클래스라고 한다. 추상 클래스의 용도 공통된 필드와 메소드의 이름을 통일할 목적 실체 클래스를 작성할 때 시간 절약 공통적 인 필드와 메소드는 추상 클래스인 Phone에 모두 선언해두고, 다른 점만 실체 클래스에 선언하면 실체 클래스를 작성하는 데 시간을 절약할 수 있다. 추상 클래스 선언 추상 클래스를 선언할 때에는 클래스 선언에 abstract 키워드를 붙여야 한다. abstract를 붙이면 new 연산자를 이용해서 객체를 만들지 못하고, 상속을 통해 자식 클래스만 만들 수 있다. public abstract class 클래스 ..

    타입 변환과 다형성

    다형성 사용 방법은 동일하지만 다양한 객체를 이용해서 다양한 실행 결과가 나오도록 하는 성질이다. 예를 들어 자동차가 타이어를 사용하는 방법은 동일하지만 어떤 타이어를 장착하느냐에 따라 주행 성능이 달라진다. 다형성을 구현하려면 메소드 재정의와 타입 변환이 필요 자동 타입 변환 프로그램 실행 도중에 자동적으로 타입 변환이 일어나는 것 (ex) 부모타입 변수 = 자식타입; 자식은 부모의 특징과 기능을 상속받기 때문에 부모와 동일하게 취급될 수 있다. Cat cat = new Cat(); Animal animal = cat; // Animal animal = new Cat();도 가능 Cat 클래스로부터 Cat 객체를 생성하고 이것을 Animal 변수에 대입하면 자동 타입 변환이 일어난다. 바로 위의 부모가..

    상속

    클래스 상속 자식 클래스를 선언할 때 어떤 부모 클래스를 상속받을 것인지 결정하고, 선택된 부모 클래스는 다음 과 같이 extends 뒤에 기술한다. class 자식클래스 extends 부모클래스 { // 필드 // 생성자 // 메소드 } 여러 개의 부모 클래스를 상속할 수 없다. 그러므로 extends 뒤에는 단 하나의 부모 클래스만 와야 한다. 부모 클래스에서 private 접근 제한을 갖는 필드와 메소드는 상속 대상에서 제외된다. 부모 클래스와 자식 클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메소드도 상속 대상에서 제외된다. 부모 생성자 호출 자식 객체를 생성하면, 부모 객체가 먼저 생성되고 그 다음에 자식 객체가 생성된다. DmbCellPhone dmbCellPhon..

    패키지와 접근 제한자

    패키지 선언 해당 클래스가 어떤 패키지에 속할 것인지를 선언하는 것 package 상위패키지.하위패키지; public class ClassName { ••• } 패키지 이름 규칙 숫자로 시작해서는 안 되고 $를 제외한 특수 문자를 사용해서는 안된다. java로 시작하는 패키지는 자바 표준 API에서만 사용하므로 사용해서는 안된다. 모두 소문자로 작성하는 것이 관례이다 import문 사용하고자 하는 클래스 또는 인터페이스가 다른 패키지에 소속되어 있다면, import문으로 해당 패키지의 클래스 또는 인터페이스를 가져와 사용할 것임을 컴파일러에게 알려줘야 한다. 상위 패키지를 import했다고 해서 하위 패키지까지 import되는 것은 아니다. import 상위패키지. 하위패키지. 클래스이름; import ..

    인스턴스 멤버와 정적 멤버

    인스턴스 멤버 객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메소드를 말하는데, 이들을 각각 인스턴스 필드, 인스턴스 메소드라고 부른다. 인스턴스 멤버 선언 // Car클래스에 인스턴스 필드 gas와 인스턴스 메소드 setSpeed()를 선언 public class Car { //필드 int gas; //메소드 void setSpeed(int speed) { ••• } } this 객체 내부에서도 인스턴스 멤버에 접근하기 위해 this를 사용 객체는 자신을 this라고 한다. 정적 멤버 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메소드를 말하는데, 이들을 각각 정적 필드, 정적 메소드라고 부른다. 정적 멤버 선언 정적 필드와 정적 메소드를 선언하려면 필드와 메소드 선언 시..

    메소드

    메소드 선언 메소드 선언은 선언부(리턴 타입, 메소드 이름, 매개 변수 선언)와 실행 블록으로 구성 리턴 타입 리턴값(메소드를 실행한 후의 결과값)의 타입 메소드는 리턴값이 있을 수도 있고 없을 수도 있으나 리턴값이 있을 경우 리턴 타입이 선언부에 명시 void powerOnO { ••• } double divide( int x, int y ) { ••• } // 리턴값의 유무는 메소드를 호출하는 방법에서 다름 powerOnO; double result = divide( 10, 20 ); 메소드 이름 숫자로 시작하면 안 되고, $와 _를 제외한 특수 문자를 사용하지 말아야 합니다. 관례적으로 메소드 이름은 소문자로 작성합니다. 서로 다른 단어가 혼합된 이름이라면 뒤이어 오는 단어의 첫 글자는 대문자로 작..

    생성자

    생성자 - new 연산자로 클래스로부터 객체를 생성할 때 호출되어 객체의 초기화를 담당 - 모든 클래스는 생성자가 반드시 존재하며, 생성자를 하나 이상 가질 수 있다. 객체 초기화 필드를 초기화하거나 메소드를 호출해서 객체를 사용할 준비를 하는 것 생성자를 실행하지 않고는 클래스로부터 객체를 만들 수 없다. 기본 생성자 우리가 클래스 내부에 생성자 선언을 생략했다면 컴파일러는 다음과 같이 중괄호 {} 블록 내용이 비어 있는 기본 생성자를 바이트 코드에 자동 추가 [public] 클래스() {} 예를 들어 Car 클래스를 설계할 때 생성자를 생략하면 기본 생성자가 다음과 같이 생성한다. 그렇기 때문에 클래스에 생성자를 선언하지 않아도 다음과 같이 new 연산자 뒤에 기본 생성자를 호출해서 객체를 생성할 수..

    반복문

    for문 - for문과 while 문은 서로 변환이 가능 - for문 : 반복 횟수를 알고 있을 때 주로 사용 초기화식 - 조건식과 실행문, 증감식에서 사용할 변수를 초기화하는 역할 , 생략 가능 for(;i

    조건문

    if문 : 조건식의 결과가 true, false이냐에 따라 실행문 결정 Math.random() 메소드 0.0과 1.0 사이에 속하는 double 타입의 난수 하나를 리턴한다. 이 때 0.0은 범위에 포함되고 1.0은 포함되지 않는다. int num = (int)(Math.random() * n) + 1; start 부터 시작하는 n개의 정수 중에서 임의의 정수 하나를 얻기 위한 연산식 switch문 : 변수가 어떤 값을 갖느냐에 따라 실행문 결정 default 생략 가능 case 끝에 break가 붙어 있는 이유 : 다음 case를 실행하지 않고 switch문을 빠져나가기 위해서이다. break가 없다면 다음 case가 연달아 실행되는데 이때는 case값과 상관없이 실행된다. 확인 문제 조건문의 종류 ..