자바 191

JAVA 자바 예외처리 예외와 예외 클래스

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 예외와 예외 클래스 예외 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류. 예외가 발생되면 프로그램은 곧바로 종료된다는 점에서 에러와 동일예외처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있습니다. 예외에는 두 가지 종류가 있습니다. 하나는 일반 예외(Exception)이고 다른 하나는 실행 예외(Runtime Exception)입니다. 일반 예외는 자바 소스를 컴파일하는 과정에서 예외 처리 코드가 필요한지 검사합니다. 예외 처리 코드가 없다면 컴파일 오류가 발생합니다...

자바 2017.03.13

JAVA 자바 익명 객체의 로컬 변수 사용

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 익명 객체의 로컬 변수 사용 익명 객체 내부에서는 바깥 클래스의 필드나 메서드는 제한 없이 사용가능합니다. 문제는 메서드의 매개 변수나 로컬 변수를 익명 객체에서 사용할 때입니다. 메서드 내에서 생성된 익명 객체는 메서드 실행이 끝나도 힙 메모리 영역에 존재해서 계속 사용할 수 있습니다.매개 변수나 로컬 변수는 메서드 실행이 끝나면 스택 메모리 영역에서 사라지기 때문에 익명 객체에서는 사옹할 수 없게 되서 문제가 발생합니다. 이 문제에 대한 해결 방법은 이전에 로컬 클래스에서 사용 제한 포스팅에서 공부했었습니다. 로컬 클래스와 ..

자바 2017.03.13

JAVA 자바 익명 구현 객체 생성

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 익명 구현 객체 생성구현 클래스가 재사용되지 않고, 오로지 해당 필드와 변수의 초기값으로만 사용하는 경우라면 익명 구현 객체를 초기값으로 대입하는 것이 좋습니다. 인터페이스 [필드|변수] = new 인터페이스() { //인터페이스에 선언된 추상 메서드의 실체 메서드 선언 //필드 //메서드 //필드와 메서드는 실체 메서드에서만 사용이 가능하고 외부에서는 사용하지 못합니다.}; 필드를 선언할 때 초기값으로 익명 구현 객체를 생성해서 대입하는 코드.class A{ AAA aaa = new AAA() { // 클래스 A 의 필드 선언..

자바 2017.03.13

JAVA 자바 : 익명 자식 객체 생성

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 익명 객체 이름이 없는 객체. 클래스를 상속하거나 인터페이스를 구현해야지만 생성할 수 있습니다.익명 객체는 필드의 초기값이나 로컬 변수의 초기값, 매개 변수의 매개값으로 주로 대입됩니다. UI 이벤트 처리 객체나 스레드 객체를 간편하게 생성할 목적으로 많이 활용. 익명 자식 객체 생성 부모 타입으로 필드나 변수를 선언하고 자식 객체를 초기값으로 대입하는 경우.부모 클래스를 상속해서 자식 클래스를 선언하고, new 연산자를 이영해서 자식 객체를 생성한 후 , 필드나 로컬 변수에 대입하는 것이 일반적임.class Child exte..

자바 2017.03.13

JAVA 자바 중첩 인터페이스 Interface

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 중첩 인터페이스 클래스의 멤버로 선언된 인터페이스. class A { interface I { void method(); }} 예) 버튼을 클릭했을 때 이벤트를 처리하고 싶다고 하고, 아무 객체나 받으면 안 되고, 버튼 내부에서 선언된 중첩 인터페이스를 구현한 객체만 받아야 한다고 한다면, 아래와 같이 Button클래스를 선언하면 됩니다. public class Button { OnClickListener listener; void setOnClickListener(OnClickListener listener) { this.li..

자바 2017.03.13

JAVA 자바 중첩 클래스: 중첩 클래스의 접근 제한 - 로컬 클래스에서 사용 제한 / 중첩 클래스에서 바깥 클래스 참조 얻기

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 로컬 클래스에서 사용 제한 로컬 클래스 내부에서는 바깥 클래스의 필드나 메서드를 제한 없이 사용할 수 있습니다. 로컬 클래스의 객체는 메서드 실행이 끝나도 힙 메모리 영역에 존재해서 계속 사용될 수 있지만, 매개 변수나 로컬 변수는 메서드의 실행이 끝나면 스택 메모리 영역에서 사라지기 때문에 로컬 객체에서 사용할 수 없는 문제가 발생합니다. 로컬 클래스에서 사용 가능한 것은 final로 선언된 매개 변수와 로컬 변수 뿐입니다. 자바 8부터는 final 키워드 없이 선언된 매개 변수나 로컬 변수를 선언해도 컴파일 에러가 나지 않습..

자바 2017.03.13

JAVA 자바 중첩 클래스 : 중첩 클래스의 접근 제한 - 바깥 필드와 메서드에서 사용 제한, 멤버 클래스에서 사용 제한

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 바깥 필드와 메서드에서 사용 제한 멤버 클래스가 인스턴스 또는 정적으로 선언됨에 따라 바깥 클래스의 필드와 메서드에 사용 제한이 생깁니다.예제. B 클래스는 인스턴스 멤버이기 때문에 바깥 클래스의 인스턴스 필드의 초기값이나 인스턴스 메서드에서 객체를 생성할 수 있으나, 정적 필드의 초기값이나 정적 메서드에서는 객체를 생성할 수 없습니다. 반면에 정적 멤버 클래스인 C 클래스는 모든 필드의 초기값이나 모든 메서드에서 객체를 생성할 수 있습니다.public class A { //인스턴스 필드 B field1 = new B(); C ..

자바 2017.03.13

JAVA 자바 중첩 클래스: 인스턴스 멤버 클래스, 정적 멤버 클래스, 로컬 클래스

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 중첩 클래스클래스 내부에서 선언되는 위치에 따라 두 가지로 분류됩니다. 멤버 클래스 : 클래스의 멤버로서 선언되는 중첩 클래스.로컬 클래스 : 메서드 내부에서 선언되는 중첩 클래스 멤버 클래스와 로컬 클래스의 차이멤버 클래스 : 클래스나 객체가 사용 중이라면, 언제든지 재사용이 가능하지만, 로컬 클래스 : 메서드 샐행 시에만 사용되고 메서드가 실행 종료되면 없어집니다. 멤버 클래스도 하나의 클래스이기 때문에 컴파일하면 .class 파일이 별도로 생성됩니다. A $ B . class 바깥클래스 멤버클래스 로컬 클래스일 경우에는 아..

자바 2017.03.13

JAVA - 중첩 클래스와 중첩 인터페이스의 개념

중첩 클래스와 중첩 인터페이스의 개념클래스 내부에 선언한 클래스를 말합니다. 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다. class ClassName { class NestedClass { } 중첩 클래스} 중찹 인터페이스 : 클래스 내부에 선언한 인터페이스. 해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들기 위해서 사용. class ClassName { interface NestedInterface { } // 중첩 인터페이스} 중첩 인터페이스는 주로 UI 프로그래밍에서 이벤트를 처리할 목적으로 많이 활용됩니다. 안드로이드에서는 아래와 같이 View 클래스의 클릭 이벤트를 처리하는 구현 ..

자바 2017.03.13

JAVA 자바 디폴트 메서드와 인터페이스 확장- 디폴트 메서드가 있는 인터페이스 상속

안녕하세요 알통몬입니다.공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!포스팅 내용이 찾아주신 분들께 도움이 되길 바라며더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^ 디폴트 메서드가 있는 인터페이스 상속 부모 인터페이스에 디폴트 메서드가 정의되어 있을 경우, 자식 인터페이스에서 디폴트 메서드를 사용하는 방법은 아래 세 가지가 있습니다.1. 디폴트 메서드를 단순히 상속만 받는다.2. 디폴트 메서드를 재정의(@Override)해서 실행 내용을 변경한다.3. 디폴트 메서드를 추상 메서드로 재선언한다. 이러한 부모 인터페이스가 있다고 할 때.public interface ParentInterface { public void method1(); public default void method2() {..

자바 2017.03.13