찾다
JavaJava시작하기Java 내부 클래스에 대한 자세한 설명

Java 내부 클래스에 대한 자세한 설명

Apr 23, 2020 pm 04:25 PM
java내부 클래스

Java 내부 클래스에 대한 자세한 설명

일반 내부 클래스

일반 내부 클래스에서 마스터해야 할 두 가지 주요 사항이 있습니다.

부모 클래스에 대한 참조를 보유하므로 어떤 액세스로든 부모 클래스의 변수 및 메서드에 액세스할 수 있습니다. right

내부 클래스는 상위 클래스 외부에 있음 생성 메소드

public class Main{
    public static void main(String args[]){
        Outer outer = new Outer();
        //外部类外部创建内部类
        Outer.Inner inner = outer.new Inner();
        inner.method();
    }
}
class Outer{
    private String value = "OuterValue";
    class Inner{
        public void method(){
            //持有父类引用,可以访问父类private变量value
            System.out.println(value);
        }
        //利用.this关键字,可以返回父类对象引用
        public Outer outerObject(){
            return Outer.this;
        }
    }
}

(권장 튜토리얼: java 입문 프로그램)

메서드 내부 클래스

메서드에 직접 정의된 내부 클래스

와 동일한 권한을 누릴 수 있습니다. 외부 클래스의 다른 메서드와 멤버 변수에 액세스할 수 있습니다.

메소드 1.8 이후에는 매개변수를 final로 설정할 필요가 없습니다.

메서드의 로컬 변수와 동일한 권한을 가지며, 앞에 정의된 로컬 변수에 액세스할 수 있습니다

메서드 범위 내에서 메소드의 내부 클래스에만 접근할 수 있습니다.

public class Main{
    public static void main(String args[]){
        Outer outer = new Outer();
        outer.outerMethod("param");
    }
}
class Outer{
    public void outerMethod(String value){
        class Inner {
            public void innerMethod(){
                //可以访问方法参数
                //1.8以后,内部类访问的方法参数不必设置为final
                System.out.println(value);
            }
        }
        new Inner().innerMethod();
    }
}

익명 내부 클래스

익명 내부 클래스는 실제로 우리가 자주 사용하는 핵심이자 지식 포인트입니다.

예를 들어, 새 스레드를 생성합니다

public class Main{
    public static void main(String args[]){
        Thread a = new Thread(new Runnable(){
            @Override
            public void run(){
                System.out.println("thread a is running;");
            }
        });
        a.start();
    }
}

위 코드는 Runnable 인터페이스를 구현하는 익명 클래스 객체를 생성한다는 의미이며, 이는 작성 편의성 때문에 두 번째 유형을 자주 사용합니다

.
public class Main{
    public static void main(String args[]){
        Thread a = new Thread(new RunnableImp());
        a.start();
    }
    static class RunnableImp implements Runnable{
        @Override
        public void run(){
            System.out.println("thread a is running;");
        }
    }
}

정적 내부 클래스

다음 두 가지 사항을 기억하세요

정적 내부 클래스 객체를 생성하려면 외부 클래스의 객체가 필요하지 않습니다(일반 내부 클래스에 필요)

비정적 외부 클래스에 접근할 수 없습니다 정적 내부 클래스의 클래스 메서드 또는 멤버 변수

public class Main{
    Outer.Inner inner = new Outer.Inner();
}

class Outer{
    private String ordValue;
    private static String staValue;
    static class Inner{
        {
            System.out.println(staValue);

            //这句编译通不过
            //System.out.println(ordValue);
        }
    }
}

관련 동영상 튜토리얼 추천: java video

위 내용은 Java 내부 클래스에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 csdn에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

에디트플러스 중국어 크랙 버전

에디트플러스 중국어 크랙 버전

작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.