본문 바로가기

Java

(8)
오버라이딩, 오버로딩 # 오버라이딩(Overriding) : 조상클래스로부터 메소드를 상속받아 자손클래스에서 메소드의 내용을 변경하는 것. - 조상클래스와 자손클래스 메소드의 반환형, 이름, 매개변수가 똑같다 (선언부) - 조상클래스와 자손클래스의 메소드 내용이 다르다 (구현부) - 조건 1. 접근제어자를 자손클래스가 조상클래스보다 좁은 범위로 변경할 수 없다. 보통 같은 접근제어자 사용. 2. 조상 클래스의 메소드보다 자손클래스의 예외의 수가 적거나 같아야한다. # 오버로딩(Over loading) : 같은 클래스내에 이름이 같은 메소드를 여러개 선언하는 것 - 조건 1. 메소드의 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. 3. 매개변수는 같고 리턴 타입이 다른 경우는 오버로딩이 안된다.
상속, 포함 # 클래스 재사용 # 1. 상속 : 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것. - 장점 1. 코드의 재사용성이 높다 2. 코드의 중복을 제거하여 프로그램의 생산성 증가 3. 유지보수가 쉽다 class 클래스명 extends 상속클래스명 으로 상속을 받을 수 있다. 자손 클래스는 조상 클래스의 모든 멤버를 상속 받으므로 조상클래스보다 항상 멤버가 같거나 더 많다. - 생성자와 초기화 블럭은 상속되지 않는다. 멤버만 상속. - 접근제어자가 private 또는 default 는 멤버가 상속되지 않는게 아니라 자손에서 접근이 제한되는 것. - 자바에서는 단일 상속만을 허용한다. : 다중상속시 여러 클래스로부터 상속 받는다는 장점이 있지만 클래스 관계가 복잡해지고 멤버의 이름을 구별하기가 어려워지는..
소수점 자리 표시 방법 1. printf 메소드 사용 %.(자릿수)f : 원하는 자릿수를 넣으면 해당하는 소수점 자리까지 출력된다. 2. Math.round() 메소드 사용 round() 메소드 내용 public static long round(double a) Returns the closest long to the argument, with ties rounding up. Special cases: •If the argument is NaN, the result is 0. •If the argument is negative infinity or any value less than or equal to the value of Long.MIN_VALUE, the result is equal to the value of Long..
객체 # 클래스 : 객체를 정의 해놓은 것. - 용도 : 객체를 생성하기 위해 사용 # 인스턴스화 : 클래스로부터 객체를 만드는 과정 # 인스턴스 : 어떤 클래스로부터 만들어진 객체 ex ) 책상은 책상 클래스의 인스턴스이다. # 인스턴스의 생성 클래스명 변수명; // 인스턴스 선언 변수명 = new 클래스명(); // 인스턴스 생성 => 클래스명 변수명 = new 클래스명(); // 인스턴스 선언 및 생성 : 인스턴스를 사용하기 위해서는 클래스를 정의한 후, Main에서 인스턴스 선언 및 생성을 해주면 사용할 수 있다. 인스턴스 안에 선언된 멤버 변수 및 메소드를 사용하기 위해서는 .(점)을 사용하면 된다. 인스턴스변수명.멤버변수명 // 멤버 변수에 값을 넣거나 사용할 때 인스턴스변수명.메소드명() or ...
향상된 for문 # 향상된 for문 : 배열의 length 만큼 순차적으로 반복문을 돌릴 때 사용한다. [향상된 for문을 사용한 1차원 배열] : for문이 시작되면 charr이 참조하는 곳에 있는 값들을 temp에 넣기 시작한다. charr[0]에 있는 값부터 배열의 길이만큼 반복하며 for문안에 있는 문장을 수행한다. [향상된 for문을 사용한 2차원 배열] : 2차원 배열은 하나의 배열 안에 또 다른 배열이 들어가서 2차원 배열이 된다. score는 score[?] 배열(?는 숫자)을 참조하는 값을 가지고 있다. score[?]은 score[?][?] 배열을 참조하는 값을 가지고 있어서 score[?][?] 배열을 출력하게 되면 가지고 있는 int형 값이 출력되게 된다. for문에서 다른 배열 int[] temp..
자료형 및 산술 연산 종류\크기 1 byte 2 byte 4 byte 8 byte 정수형 byte short int long 실수형 float double 정수형 char byte -> short / char -> int -> long -> float -> double -------------------> 이쪽 방향으로 대입시 자동 형변환 # JAVA에서는 산술 연산시에 int형을 기준으로 산술 연산을 진행한다. - int형보다 작은 자료형끼리 계산할 경우 int형으로 자동형 변환이 되어서 계산된다. - 큰 자료형을 작은 자료형에 넣을 경우에 강제형변환을 해줘야한다. - int형보다 클 경우에는 큰 자료형으로 자동형 변환이 일어난다. : num1과 num2는 둘 다 byte라서 계산 후, result에 넣어도 문제가 되지 않..
배열 # 배열 선언 : 생성된 배열을 다루기 위한 참조 변수를 위한 공간만 생성 ( 배열 공간 X ) - 타입[] 변수이름; - 타입 변수이름[]; # 배열 생성 : 데이터를 저장할 수 있는 공간이 생성 ( 배열 공간 O ) - new 연산자 사용 - 변수이름 = new 타입[크기]; -> 배열도 객체이므로 멤버변수와 함수를 가지고 있다. 가장 많이 쓰는 멤버변수 length : 배열의 길이 반환 # 배열 초기화 1) 자동적으로 타입에 해당 하는 기본값으로 초기화 2) 직접 초기화하는 방법 - 타입[] 변수이름 = { 값1, 값2, 값3, 값4 }; // 이 방법이 좋다 /* 주의 사항 */ 선언 및 생성과 같이 초기화를 해주어야함 -------- 에러 발생 -------- 타입[] 변수이름; 변수이름 = {..
자주 쓰는 이클립스 단축키 # 주석 // 주석처리 : (한줄 or 범위 지정 가능) Ctrl + / or Ctrl + Shift + C /* */ 주석처리 : (범위 지정) Ctrl + Shift + / # 자동 완성 자동 완성 기능 목록 : Ctrl + Spacebar println 자동 입력 : sysout 입력 후, Ctrl + Spacebar Quick fix : Ctrl + 1 - 구현하지 않은 메소드 추가 - 로컬 변수 이름 변경 - (if / for / where문) 블록으로 둘러 싸기 # 정렬 들여쓰기 자동 정렬 : (범위 지정) Ctrl + i 자동 줄맞춤 : Ctrl + Shift + F # 삭제 한줄 삭제 : Ctrl + D # 이동 다음 / 이전 메소드 이동 : Ctrl + Shift + ↑↓(