일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 디자인패턴
- 자바연습문제
- 스프링
- 직장인자기계발
- 웹
- 자바기초
- 패캠챌린지
- ncs
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online
- 국비
- js
- 리눅스
- java기초
- DB
- java
- 자바
- 재택근무
- javabasic
- 패스트캠퍼스
- 자바기본
- 패스트캠퍼스후기
- 디자인
- linux
- 자바예제
- String
- DesignPattern
- 직장인인강
- 한번에끝내는JavaSpring웹개발마스터초격차패키지Online강의
- Spring
- 데이터베이스
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 |
Comments