일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
Tags
- 직장인자기계발
- String
- DB
- 재택근무
- 자바
- 웹
- linux
- 패스트캠퍼스후기
- 데이터베이스
- java기초
- DesignPattern
- 디자인패턴
- 국비
- js
- 자바기초
- 자바기본
- 패캠챌린지
- ncs
- 스프링
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- java
- 직장인인강
- Spring
- 자바연습문제
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 패스트캠퍼스
- 리눅스
- 자바예제
- javabasic
- 디자인
Archives
- Today
- Total
FIF's 코딩팩토리
자바 기초 NCS교육과정(47)-inner 본문
반응형
class 클래스명{
멤버변수;
static{ }
생성자
메소드;
내부클래스;
}
내부클래스
1 클래스 안에 정의된 클래스이다.
2 특정 클래스 내에서만 주로 사용되는 클래스이다.
3 외부클래스의 private으로 선언된 멤버변수를 직접적으로 접근해서 처리할 수 있다.
내부클래스 종류
1 인스턴스 클래스 :외부클래스의 멤버변수 선언위치에 선언하며, 외부클래스의
인스턴스 멤버처럼 다루어진다. 주로 외부 클래스의 인스턴스 멤버들과
관련된 작업에 사용될 목적으로 선언된다.
2 스태틱 클래스 : 외부클래스의 멤버변수 선언위치에 선언하며, 외부클래스의
static멤버처럼 다루어진다.
주로 외부클래스의 static멤버, 특히 static메서드에서 사용될
목적으로 선언된다.
3 지역클래스 : 외부 클래스의 메서드나 초기화블럭 안에 선언하며,
선언된 영역 내부에서만 사용될 수 있다.
4 익명클래스 : 클래스의 선언과 객체의 생성을 동시에 하는 이름없는 클래스이다.
Java202_inner.java
class OuterInstance { private int num; private int data; public void display() { System.out.println("display"); } class InnerInstance{ public void run() { num=10; System.out.println(num); } } } public class Java202_inner { public static void main(String[] args) { OuterInstance outer=new OuterInstance(); outer.display(); OuterInstance.InnerInstance inner=outer.new InnerInstance(); inner.run(); } }

Java203_inner.java
class OuterStatic{ private int x; static private int y; static void call() { y=9; System.out.println(y); } static class InnerStatic{ int z; static int k=5; void prn() { //x=40;//비static외부자원은 inner static내부클래스에서 참조불가 y=20; z=30; System.out.printf("%d %d\n",y,z); } } } public class Java203_inner { public static void main(String[] args) { OuterStatic.call(); OuterStatic.InnerStatic inner=new OuterStatic.InnerStatic(); inner.prn(); System.out.println(OuterStatic.InnerStatic.k); } }

Java204_inner.java
class OuterLocal{ private int x; private int y; final private int z=10; public void call(int a) { final int b=20; int c=30; //final이 선언이 된것만 이너에서 사용가능 //a=300; //System.out.println(a); //c=50; class InnerLocal{ void prn() { x=5; y=150; System.out.println("x="+x); System.out.println("y="+y); System.out.println("z="+z); System.out.println("a="+a); System.out.println("b="+b); System.out.println("c="+c); } } InnerLocal inner=new InnerLocal(); inner.prn(); } } public class Java204_inner { public static void main(String[] args) { OuterLocal outer=new OuterLocal(); outer.call(100); } }

Java205_inner.java
abstract class InnerAnonymous { abstract void prn(); } class Test extends InnerAnonymous { @Override void prn() { System.out.println(10); } } class OuterAnonymous { private int x; public void call() { /*InnerAnonymous tt = new InnerAnonymous() { @Override void prn() { x = 5; System.out.println(x); } }; tt.prn();*/ new InnerAnonymous() { @Override void prn() { x = 5; System.out.println(x); } }.prn(); } } public class Java205_inner { public static void main(String[] args) { Test tt = new Test(); tt.prn(); OuterAnonymous outer=new OuterAnonymous(); outer.call(); } }

반응형
'Back-End > 국비 NCS교과과정' 카테고리의 다른 글
자바 기초 NCS교육과정(48)-쓰레드 (0) | 2019.08.06 |
---|---|
자바 기초 NCS교육과정(46)-컬렉션 문제풀이 (1) | 2019.08.02 |
자바 기초 NCS교육과정(45)-컬렉션4 (0) | 2019.08.02 |
자바 기초 NCS교육과정(44)-컬렉션3 (0) | 2019.08.02 |
자바 기초 NCS교육과정(43)-컬렉션2 (0) | 2019.08.02 |