목록Java (117)
hyeonga_code
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bqPhvn/btsybUS3da1/Xd69jwhVsO7iAPJx2oKY01/img.jpg)
- Exception - 프로그램 소스 오류가 아닌 프로그램 실행 시 발생할 수 있는 오류 - 예외 처리 - 예외가 발생을 알려주는 것 - 예외 처리 방법 - 강제 예외 throw - 예외 전가 - 미뤄버림(main에 있으면 system으로 넘김> 처리 X, 에러 발생) throws - 예외 처리 try ~ catch - 예외 클래스 만들기 1. Exception 클래스 상속 2. public String getMessage() 메소드 오버라이드 - 오류 - 컴파일 에러 : Compile 과정 중에 발생 - 런타임 에러 : 실행 중에 발생 - 에러 : 프로그램 코드에 의해 수습될 수 없는 심각한 오류 - 예외 : 프로그램 코드에 의해 수습될 수 있는 미약한 오류 - 오류가 발생했을 경우 오류를 잡을 수 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cox7yj/btsx1XXUhc7/cQV9kzoZhqDfI6kKNh1fNK/img.jpg)
- Lambda 표현식 - 식별자 없이 실행이 가능한 함수 표현식입니다. - 함수를 따로 작성하지 않고 코드 한 줄에 함수를 작성하여 호출하는 방식입니다. ('매개 변수', ...) -> { 실행할 코드 } - 주의사항 - 매개 변수가 하나인 경우 괄호()를 생략할 수 있습니다. - 타입이 없는 경우에만 가능합니다. - 블록 안의 문장이 한 줄일 경우 괄호{}를 생략할 수 있습니다. - 문장 한 줄이 return 줄일 경우 생략할 수 없습니다. ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 package oop.abstract_ex; import java.util.Arrays; public class Lam..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Fzvsx/btsybxRlljN/3JF9ZGZ6uXvRr80UgTzkUk/img.jpg)
- 추상 메소드 - 메소드의 이름만 정의된 것입니다. - 메소드의 내용은 정의되지 않았습니다. - 객체를 생성할 수 없습니다. - 선언부만 있고 구현부가 없습니다. - 필요한 메소드이지만 하위 클래스마다 다르게 구현해야 하는 경우 사용합니다. - 상속을 받은 경우 무조건 오버라이딩 해야 합니다. - 추상클래스를 상속받는 하위 클래스에서 추상 메소드의 구현부를 완성해야 합니다. 도형{ 그리다(); } 원 상속 도형{ 그리다(){ 동그랗게 그려요; } } - Abstract_추상 클래스 - 추상 메소를 한 개 이상 가지고 있는 클래스입니다. - 일반 메소드를 가질 수 있습니다. - 다른 클래스를 작성하는 데에 도움을 주는 역할입니다. - 반드시 추상 클래스임을 명시해야 합니다. - 일반 메소드가 추상 메소드..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bPyoCU/btsx1QqZrtH/C3nNdvSmG1kCPhjSk3qiq0/img.jpg)
-- implements와 extends의 차이 - 동일한 타입을 상속받을 경우 extends_상속 - 다른 타입을 상속받을 경우 implements abstract class A { 모든 멤버 변수; 모든 멤버 메소드; } abstract class B extends A{ 모든 멤버 변수; 모든 멤버 메소드; } interface C implements B { 상수 추상 메소드 } interface D extends C { 상수 추상 메소드 } - 단일 상속의 문제 Frame > 크기 정하기 WindowAdapter_class > 종료버튼 - Frame을 상속받은 경우 - 윈도우는 띄울 수 있음 - 종료 기능을 직접 코딩해야 합니다. > WindowListener_interface를 상속받습니다. - ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cyQYMY/btsybybDEGC/RTcDWShxcMOjRmZIklpzzK/img.jpg)
- 다형성 - 객체의 연산자 - Java에서 객체의 연산은 대입연산자 뿐 - 대입 연산자 - 같은 클래스 - 상속 관계(클래스) - 한 타입의 참조 변수로 여러 타입의 객체를 참조할 수 있도록 하는 것 - 기본 사용 형식 A ap = new A(); A bp = new B(); - 다형성에서의 형식 - 상위 클래스 = 하위 클래스 A ap = new B(); - 하위 클래스는 상위 클래스로 객체를 생성할 수 없습니다. B bp = new A(); runtime error : 논리는 맞으나 상황에 맞지 않아 오류가 발생합니다. - 다형성으로 받아들였을 때 달라지는 것 class A{ x=5; a(); b(); } class B{ x=10; a(); c(); } - 멤버 호출 시 상위 클래스의 x를 호출합니..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/eKqsn4/btsx2tvwcUY/T7QDLJkIRbwMiWCPgwY9I1/img.jpg)
- Interface_인터페이스 - 메소드만 가지고 있는 클래스임을 보장합니다. - 추상 메소드의 집합입니다. - 실제로 구현된 내용이 없습니다. - 코드가 없어도 있다고 가정하고 가져다 사용할 수 있게 돕는 역할입니다. - 메소드가 있는 것처럼 Compiler에게 인식시키는 역할입니다. - 내용이 없어도 오류를 발생시키지 않습니다. - 병렬 개발로 시간을 줄이기 위해 서로의 의존성을 줄이기 위해 필요한 정의입니다. - 직접 객체를 생성할 수 없습니다. - 인터페이스를 상속 받은 클래스를 생성한 뒤에 클래스 객체를 생성합니다. - 다중 상속이 가능합니다. - Java에서는 기본적으로 다중 상속이 불가능합니다. - 상위 클래스는 하위 클래스를 다중으로 가질 수 있습니다. - 하위 클래스는 상위 클래스를 다..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/sqS0r/btsx0Mbp0Gz/ZYkiVAikvcPg0z6nQoUV30/img.jpg)
- super - 상위 클래스 멤버에 접근하고자 할 때 사용합니다. - super() - 상위의 default 생성자를 호출합니다. - 상위 클래스의 default 생성자가 없다면 오류가 발생합니다. // 오류 : The constructor A07() is undefined. - 상속 관계에서 상위 클래스의 멤버 필드 값을 받아오기 위해 상위 클래스의 생성자를 통해 받아옵니다. - 지정하지 않을 경우 사용됩니다. - this()와 같이 사용할 수 없습니다. - 메소드의 첫 번째 줄에 위치해야 합니다. - super('매개 변수') 'VIPCustomer.java' ''' // super public VIPCustomer(int id, String name) { super(id,name); // 상위 클..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cMkndm/btsxSB80Eoa/W5Uk8wwhnzuvdq3ziWkSK1/img.jpg)
- 오버라이드 @Override - 상위 클래스의 메소드의 이름과 동일한 메소드를 재정의 한 것입니다. - 접근 제한자 법칙 private
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cNDsAF/btsxZzbhvpw/RfEeoBg88oRGStfxcDX7zK/img.jpg)
- Inheritance_상속 - Polymorphism_다형성을 확보하기 위한 가장 기본적인 방법입니다. - 새로운 클래스에서 다른 클래스의 생성자를 제외한 멤버 변수, 메소드 등을 이용할 수 있습니다. - Child_하위 클래스 - 상속을 받아온 새로운 클래스 - Super_상위 클래스 - 멤버 변수, 메소드를 제공하는 클래스 - 접근 제한자를 사용하여 이용 범위를 제한할 수 있습니다. - 상위 클래스가 하나 이상일 수 없습니다. class '클래스 이름' extends '상속할 클래스 이름'{ } ex) class 사람 {} class 학생 extends 사람 {} class 경찰 extends 사람 {} T - 학생은 사람이다. T - 경찰은 사람이다. F - 경찰 중에 학생이 있다면 경찰은 학생..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/byVyKs/btswUXjdCho/zAHwbYPSvxHokaVgQZr7Gk/img.jpg)
- toString - 객체 명 = hip의 주소값(4 바이트) - >>> 참조 변수(메모리 구조상)_가리키는 곳에 데이터가 있는 변수(포인터) - java의 주소는 JVM 이 관리하므로 사용자는 접근이 불가능 - 객체 명을 요구하면.toString을 붙여 출력해주지만, 생략되어 출력되는 것 ap = ap.toString() - 멤버 필드의 수정이 있는 경우 업데이트합니다. ===== 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class A05{} public class same { public static void main(String[] args) { A05 ap = new A05(); System.out.println("ap.getClass = " + ap.getClass()); /..