当前位置:首页 » 密码管理 » 外部访问内部类

外部访问内部类

发布时间: 2022-08-22 12:24:07

① 从外部如何访问静态内部类

一、外部类访问内部类的成员需要创建内部类的对象,之后可以访问内部类的任何成员,包括private成员,需要注意的是成员内部类不可以有静态成员。
二、内部类不可以直接实例化,要通过外部类才可以,但是静态成员要求系统默认初始化,所以会出现矛盾,解决的好办法就是规定:成员内部类不可以有静态成员,静态初始化块,静态方法等。
三、在static方法(类加载时已经初始化)调用内部类的必须先创建外部类。
下面在说下嵌套类:如果你不需要内部类对象与其外围类对象之间有联系,那你可以将内部类声明为static。这通常称为嵌套类(nested
class)。想要理解static应用于内部类时的含义,你就必须记住,普通的内部类对象隐含地保存了一个引用,指向创建它的外围类对象。然而,当内部
类是static的时,就不是这样了。嵌套类意味着:

1. 要创建嵌套类的对象,并不需要其外围类的对象。

2. 不能从嵌套类的对象中访问非静态的外围类对象。

② 外部类可以访问内部类的方法以及静态方法和数据域吗

外部类,内部类,匿名类,外部类就是两个类并列的class A {} class B {},内部类:class A { class B {}},B可以直接使用包涵它的类的成员变量,内部类不能被除包涵类以外的类调用;还有就是匿名类,也是内部类 classA{new {}}省略定义类名直接定义方法和使用,这个适用于代码比较简单且这个类不需要被其他类调用。
并且,外部类可以访问内部类的方法以及静态方法和数据域。

java 内部类 能被外部使用吗

1、内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。
2、内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。
3、内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为inner的内部类。编译完成后出现outer.class和outer$inner.class两类。 所以内部类的成员变量/方法名可以和外部类的相同。
4、内部类具有:成员内部类、局部内部类、嵌套内部类、匿名内部类。
以下以成员内部类示例:
成员内部类,就是作为外部类的成员,可以直接使用外部类的所有成员和方法,即使是private的。同时外部类要访问内部类的所有成员变量/方法,则需要通过内部类的对象来获取。
要注意的是,成员内部类不能含有static的变量和方法。 因为成员内部类需要先创建了外部类,才能创建它自己的 ,了解这一点,就可以明白更多事情,在此省略更多的细节了。
在成员内部类要引用外部类对象时,使用outer.this来表示外部类对象;
而需要创建内部类对象,可以使用outer.inner obj = outerobj.new inner();
示例代码:
public class Outer {
public static void main(String[] args) {
Outer outer = new Outer();
Outer.Inner inner = outer. new Inner();
inner.print( "Outer.new" );
inner = outer.getInner();
inner.print( "Outer.get" );
}
public Inner getInner() {
return new Inner();
}
public class Inner {
public void print(String str) {
System.out.println(str);
}
}
}

④ java 急求 内部类 关于外部类访问内部类的例子,简单点,不要复杂的,原创!!

1.普通内部类
class A
{
class B
{
}
}
外界要使用A中的B,要先创建A的实例,然后通过A实例创建B
A a = new A();
A.B b = a.new B();
如果class B类前面有private修饰符外界就无法使用内部类了。
2.静态内部类
class A
{
static class B
{
}
}
静态内部类,外部可以直接使用和创建对象,不必先创建外部类的对象。
A.B b = new A.B();
3.局部内部类:将类的定义放在函数的局部,这样的内部类只能给当前函数使用。
4.匿名内部类。

---------------------------------
冠尔Java 3G工程师就业培训贡献!

⑤ java 外部类可以访问内部类private问题

你既然是用private修饰符,就是希望声明的成员变量不被外部的类访问,而实现封装,那就要写相应的get和set方法来实现对成员变量的修改和访问!不然的话,你用public修饰,就应该不会报错了,如果还报错,就加上static关键字!应该就ok了!

⑥ java中外部类可以访问内部类吗

一 对于外部类来说 内部类相当于它的一个属性 内部类中的private也相当于它本身的private属性 所以根据类内可见原则 内部类private是可以被外部类访问的

二 你在主方法中直接new一个自身类 相当于是在声明一个新的类 用这个新类去调用它的私有 你说是啥后果 对于jmv来说这就是典型的调用权限失败

⑦ java里面怎样通过多个外部方法访问一个内部类

外部类访问内部类要创建内部类的对象才能访问内部类的成员;
内部类可以直接访问外部类的成员
package com.test;

public class Outer {
public class Inner{
int a;
int b;
}

public void fun(){
int a = new Inner().a;
}
public void fun2(){
int b = new Inner().b;
}
}

⑧ Java中,为什么外部类可以访问内部类的私有成员

本文通过反编译内部类的字节码,说明了内部类是如何访问外部类对象的成员的,除此之外,我们也对编译器的行为有了一些了解,编译器在编译时会自动加上一些逻辑,这正是我们感觉困惑的原因。关于内部类如何访问外部类的成员,分析之后其实

⑨ Java外部类怎么访问内部类的方法和成员呢可以在外部类创建内部类的实例化对象吗

是可以的,付代码说明:

packagecom.demo;

publicclassMain{

publicstaticvoidmain(String[]args){

//非静态内部类实例对象无法独立存在,必须依赖于一个外部类的实例对象
//所以必须先实例化一个外部类对象
Demodemo=newDemo();

//因为非静态内部类也是类的非静态成员,所以可以用对象.来访问
//下面用外部类对象.内部类构造器来创建内部类对象
Demo.InnerDemoinnerDemo=demo.newInnerDemo();

innerDemo.show();
}

}

/**
*一个外部类
*/
classDemo{

/**
*内部类,这里的内部类是非静态的。
*
*实例化静态内部类很简单,直接类名.内部类名,这里不多说。
*/
publicclassInnerDemo{

/**
*内部类的一个方法
*/
publicvoidshow(){
System.out.println("这是一个内部类的方法");
}

}

}
热点内容
王者荣耀安卓区怎么免费转苹果 发布:2025-05-15 16:18:02 浏览:761
威朗pro高配都有哪些配置 发布:2025-05-15 15:57:09 浏览:956
数据库分页查询数据 发布:2025-05-15 15:45:13 浏览:520
phpmyadmin上传限制 发布:2025-05-15 15:39:52 浏览:431
如何给手机配置真正的电脑 发布:2025-05-15 15:39:52 浏览:764
抽脚本命令 发布:2025-05-15 15:39:45 浏览:660
sok编程 发布:2025-05-15 15:33:21 浏览:41
lms算法程序 发布:2025-05-15 15:31:53 浏览:569
数据库二级映射 发布:2025-05-15 15:14:09 浏览:477
3d文件加密 发布:2025-05-15 15:05:17 浏览:362