본문 바로가기
  • developer
  • challenge
이론수업

자바-클래스(class) 4가지방법

by 빵승 2024. 1. 9.

Main-화면 

class용 파일 First

 

Mian 화면

 class를 설계하는 4가지 위치

 1.별도의 .java파일에 만들기

 2.하나의 .java파일에 여러개의 class를 작성

 3.다른 class안에 class를 설계(작성) --inner class

 4.메소드(함수)안에서 class를 설계(작성)--local class

 

 

 1)

First f=new First();

f.a=10; //=해서 값을 넣는게 명시적 초기화

f.show();

 

 2)

Second s= new Second();

s.a=20;

s.show();

 

 3) 이너클래스는 외부에서 직접객체 생성이 불가능함

 

First.Hello h= new First.Hello(); 클래스 안에 있는 클래스는 앞에 어떤클래스 안에 있는건지 더 써줘야한다.

아웃터클래스가 이너클래스를 만들수 있기에

아웃터클래스안에 설계한 이너클래스 객체 생성기능을 요청!!

First.Hello h=f.makeHelloObject();

h.aaa();

이너 클래스의 사용이유

아웃터클래스를 객체로 생성하지 않으면 이너클래스를 객체로 만들수 없음

이런 문법적 제약을 통해서 아웃터객체를 만들어야만 사용할 수 있는

객체를 만들어야 할때 적용할 수 있음

 

 static 이너클래스는 외부에서 직접 new가 가능한 클래스!

Good.Test t= new Good.Test();

t.show();

 

 

class용 파일 First

 inner class를 가진 클래스를 out class라고 부름

public class First {

 

int a; 멤버변수

 

void show() {  메소드

System.out.println("First show....");

 

int m; 지역변수 -local variable

m=10;

 메소드안에 class를 설계-local class라고 부름

class Nice{

void show() {

System.out.println("Nice class...show~~");

}

}

Nice n=new Nice();

n.show();

 

Nice n2=new Nice();

n2.show();

 

지역클래스의 활용은 이런 모습보다는 추후에 학습할

익명클래스라는 수업에서 다시 소개될 예정됨

k=100;  error--inner의 멤버는 아웃터에서 마음대로 사용불가

 

}show method...

 

void out() {

Nice n=new Nice(); error 다른 지역에서는 지역클래스 사용불가

m=1000; 다른 지역변수는 인식이 불가능

}

이너클래스를 객체로 생성하여 리턴해주는 기능 메소드

 

Hello makeHelloObject() {

Hello h= new Hello();

return h;

}

 

class안에 다른 class를 설계(작성) --inner class라고 부름

이너클래스의 특징

 1.외부에서 아웃터클래스명이 없으면 인식이 안됨.

 2.외부에서 아웃터명으로 인식을 했더라도 객체 생성을 불가능

 3.이너클래스는 오직 아웃터클래스영역 안에서만 만들수 있음

 4.이너클래스안에서는 아웃터의 멤버를 내것인양 사용할수 있음.

class Hello{

int k;

void aaa() {

System.out.println("Hello show~~");

 

a=50; 아웃터에 멤버를 내것인양

System.out.println(a);

show(); 아웃터의 메소드도 내것인양 호출가능

}

}

}First class..

 

하나의 java안에 또 다른 class를 정의할 수 있음

class Second{

int a;

void show() {

System.out.println("Second show...");

}

}

하나의.java파일안에서 여러개의 class를 사용한다면 그중 1개만

public 접근제한을 적용하고 그 class의 이름으로 .java파일을 만들어야함

그래서 public이 아닌 클래스는 (default)접근제한이 되어

같은 패키지에서만 사용이 가능한 클래스로 제한됨.

'이론수업' 카테고리의 다른 글

자바 Exception-예외처리  (0) 2024.01.15
자바의 기초(클래스,객체,필드,메소드,변수)  (0) 2024.01.10
자바-메소드(Method) 4가지 형태  (0) 2024.01.08
자바-Array 이론수업  (1) 2024.01.08
자바-String 이론수업  (1) 2024.01.08