首页 > 试题广场 >

静态内部类不可以直接访问外围类的数据,而非静态内部类可以直接

[单选题]

静态内部类不可以直接访问外围类的非静态数据,而非静态内部类可以直接访问外围类的数据,包括私有数据。( )


  • 正确
  • 错误
发表于 2017-08-30 18:43:58 回复(30)
选A
总的来说一下内部类吧:
1. 静态内部类:
    1. 静态内部类本身可以访问外部的静态资源,包括静态私有资源。但是不能访问非静态资源,可以不依赖外部类实例而实例化。
2. 成员内部类:
    1. 成员内部类本身可以访问外部的所有资源,但是自身不能定义静态资源,因为其实例化本身就还依赖着外部类。
3. 局部内部类:
    1. 局部内部类就像一个局部方法,不能被访问修饰符修饰,也不能被static修饰。
    2. 局部内部类只能访问所在代码块或者方法中被定义为final的局部变量。
4. 匿名内部类:
    1. 没有类名的内部类,不能使用class,extends和implements,没有构造方法。
    2. 多用于GUI中的事件处理。
    3. 不能定义静态资源
    4. 只能创建一个匿名内部类实例。
    5. 一个匿名内部类一定是在new后面的,这个匿名类必须继承一个父类或者实现一个接口。
    6. 匿名内部类是局部内部类的特殊形式,所以局部内部类的所有限制对匿名内部类也有效。
发表于 2018-07-12 10:05:01 回复(12)
静态内部类可以访问外围类的静态数据,包括私有数据,但不能访问非静态数据;
非静态内部类可以直接访问外围类的数据,包括私有数据

发表于 2017-05-18 15:54:50 回复(4)
我可以这样总结吗:
(1)静态类/变量不可以访问非静态类/变量
                 因为非静态类/变量在没有被实例化之前不能被使用。
(2)非静态类/变量可以访问静态类/变量
                因为静态类/变量在没有被实例化之前就存在了。
发表于 2017-07-07 13:45:38 回复(2)
其实这题问的不好啊,静态内部类只可以访问外部的static的数据,所以不能算错
发表于 2017-05-19 10:35:41 回复(1)

(1)把类定义在另一个类的内部,该类就被称为内部类。
举例:把类B定义在类A中,类B就被称为内部类。
(2)内部类的访问规则

普通内部类:
A:可以直接访问外部类的成员,包括私有
B:外部类要想访问内部类成员,必须创建对象

C:不可以定义static成员变量

静态内部类:

A:可以定义static成员变量

静态内部类就像外部类的一个静态成员,无需依赖对象存在,静态内部类无法访问外部非静态成员,而外部类依然可以访问内部类对象所有访问权限的成员,与普通内部类一致

发表于 2021-12-06 08:40:56 回复(0)
之前看视频有一个老师这样讲过,我觉得比较方便理解。静态的是真实存在的,非静态的是可能存在也可能不存在的,静态的只能访问同样是真实存在的静态的类或者方法,非静态的可以访问静态的。而非静态的内部类就可以当作正常的内部类,可以访问当前类和外围类。
发表于 2021-07-09 10:59:20 回复(0)
1. 静态内部类: 静态内部类本身可以访问外部的静态资源,包括静态私有资源,但是不能访问非静态资源。可以不依赖外部类实例而实例化。 (静态属性与方法属于类,无需实例化即可访问,而非静态方法属于对象,必须要实例化) 2. 成员内部类: 成员内部类本身可以访问外部的所有资源,但是自身不能定义静态资源,因为其实例化本身就还依赖着外部类。 3. 局部内部类: 局部内部类就像一个局部方法,不能被访问修饰符修饰,也不能被static修饰。局部内部类只能访问所在代码块或者方法中被定义为final的局部变量。
发表于 2021-10-13 23:53:56 回复(0)
静态内部类可以直接访问外部类的静态成员。
实例内部类可以直接访问外部类的各个访问级别的成员。
发表于 2017-05-20 20:36:13 回复(0)
静态内部类:
 
1、用static修饰的内部类,称为静态内部类,完全属于外部类本身,不属于外部类某一个对象

2、static关键字的作用是把修饰的成员变成类相关,而不是实例相关

3、静态内部类可以包含静态成员,也可以包含非静态成员,但是在非静态内部类中不可以声明静态成员。

4、静态类内部不可以访问外部类的实例成员,只能访问外部类的类成员,即使是静态内部类的实例方法也不能访问外部类的实例成员,只能访问外部类的静态成员

5、外部类不可以定义为静态类,Java中静态类只有一种,那就是静态内部类,顶级类不能用static 修饰

6、外部类如何调用静态内部类中的属性和方法

1)外部类可以通过创建静态内部类实例的方法来调用静态内部类的非静态属性和方法

2)外部类可以直接通过“ 外部类.内部类.属性(方法)” 的方式直接调用静态内部类中的静态属性和方法

7、如何创建静态内部类实例

1)在非外部类中:外部类名.内部类名 name = new 外部类名.内部类名();

2)在外部类中:内部类名 name = new 内部类名();
发表于 2020-08-29 08:36:23 回复(0)
选A 总的来说一下内部类吧: 1. 静态内部类:     1. 静态内部类本身可以访问外部的静态资源,包括静态私有资源。但是不能访问非静态资源,可以不依赖外部类实例而实例化。 2. 成员内部类:     1. 成员内部类本身可以访问外部的所有资源,但是自身不能定义静态资源,因为其实例化本身就还依赖着外部类。 3. 局部内部类:     1. 局部内部类就像一个局部方法,不能被访问修饰符修饰,也不能被static修饰。     2. 局部内部类只能访问所在代码块或者方法中被定义为final的局部变量。 4. 匿名内部类:     1. 没有类名的内部类,不能使用class,extends和implements,没有构造方法。     2. 多用于GUI中的事件处理。     3. 不能定义静态资源     4. 只能创建一个匿名内部类实例。     5. 一个匿名内部类一定是在new后面的,这个匿名类必须继承一个父类或者实现一个接口。     6. 匿名内部类是局部内部类的特殊形式,所以局部内部类的所有限制对匿名内部类也有效。
发表于 2019-01-19 23:07:33 回复(0)
转自ggjggs: (1)静态类/变量不可以访问非静态类/变量 因为非静态类/变量在没有被实例化之前不能被使用。 (2)非静态类/变量可以访问静态类/变量 因为静态类/变量在没有被实例化之前就存在了。
编辑于 2021-05-26 13:55:41 回复(0)
静态内部类不可以访问外围类非静态数据,而非静态内部类可以访问外围类静态数据!!
发表于 2021-04-30 23:38:31 回复(0)
应该选B吧,非静态内部类分为成员内部类,局部内部类和匿名内部类,成员内部类可以直接访问外围类的所有成员变量和方法,但是局部内部类和匿名内部类是不完全正确的。
发表于 2019-10-04 16:14:57 回复(4)
没人觉得这个非静态也包括匿名内部类、局部内部类么,如果是局部内部类怎么可能可以直接访问外围类的非final属性呢?
发表于 2019-05-29 10:19:42 回复(2)
局部类部类不能访问
发表于 2022-11-20 15:42:33 回复(0)
内部类可以访问外围类的属性 与访问限制符无关 但是与静态非静态有关 静态只能访问静态 而非静态可以访问静态和非静态
发表于 2024-10-30 23:29:34 回复(0)
静态内部类能访问静态成员变量,可以访问私有静态成员变量
编辑于 2024-02-20 21:22:14 回复(0)
这类题目我觉得只要明白了产生时机,自然就懂了
发表于 2023-11-03 23:41:03 回复(0)
第一次知道外围类的概念
发表于 2023-07-17 18:07:55 回复(0)