/**
*
*/
package innerClass;
/**
* 结论:
* 静态环境中不能引用非静态域。
* 静态方法/嵌套类只能声明在静态的或者顶层结构中
* 非静态方法/内部类可以放置在任何位置,任何一层
* */
public class InnerClassAccess {
private float f = 1.0f; //非静态字段
class InnerClassA{
//static void method(){}//静态方法只能声明在静态的或者顶层的结构里面
//static class TestA{} //嵌套类只能声明在静态的或者顶层的结构里面
class Test{ //内部类可以嵌套放在任意一层
class TestB{
class TestC{}
}
}
}
void function2(){ //内部类可以放置在非静态方法中
class TestF{};
new TestF();
}
static void function(){ //内部类也可以放置在静态方法中
class TestD{}
new TestD();
}
static class InnerClassB{
public void method(){
//f = 20; //在嵌套类中不能引用非静态域
}
static void f(){ //在静态方法中不能引用非静态域
//f = 20;
}
class TestE{} //内部类可以放置在嵌套类中
}
//内部类可以是抽象类
abstract class InnerClassC{
public abstract void method();
abstract class InnerClassT{} //内部抽象类也可以嵌套
}
//内部类可以是接口
interface InnerClassD{
public void method();
interface InnerClassI{} //内部接口也可以嵌套
}
//私有内部类中可以放置public方法
private class InnerClassX{
public void g(){}
}
public static void main(String[] args) {
new InnerClassAccess();
}
}
分享到:
相关推荐
示例描述:本章学习对象和类。 accessMember.java 访问成员变量示例 constructNoPara.java 无参数的构造方法 constructWithPara.java 带参数的构造方法 declareDefault.java 缺省访问权限的使用 declarePrivate...
Java面试中的问题涵盖了广泛的知识点,包括但不限于类的作用域、匿名内部类、静态嵌套类、位运算符与逻辑运算符的区别、集合框架、断言、字符串对象的创建以及数学函数的应用。以下是对这些知识点的详细解释: 1. *...
- **解释**:Java支持多线程、跨平台和动态性等特点,但不支持多继承(类级别的多继承)。 #### 24. 数据库设计 - **知识点**:数据库模式类型。 - **解释**:外模式(也称作子模式或用户模式)是用户视图的描述...
3. **静态嵌套类与内部类:**内部类(非静态)拥有对外部类的隐含引用,而静态嵌套类没有。静态嵌套类可以直接实例化,而内部类需要先有一个外部类的实例。 4. **位运算符与逻辑运算符:**`&`是位运算符,对两个...
静态嵌套类(Static Nested Class)与非静态内部类(Inner Class)的主要区别在于静态嵌套类不持有对外部类的引用,可以直接实例化,而内部类需要外部类的实例才能创建对象。静态内部类也不能直接访问外部类的非静态...
Java支持嵌套类,包括静态嵌套类和非静态嵌套类。 #### Object (对象) 对象是Java中的基本单位,所有的类都是`Object`类的子类。对象具有状态(属性)和行为(方法)。 #### Overload (重载) 重载是指在一个类中...
1. **作用域**:在Java中,作用域决定了变量、类、接口等的可见性。`public`允许任何地方访问,`private`限制在当前类内,`protected`允许同一包内的类和子类访问,而没有指定修饰符的成员是`friendly`,也称为包级...
6. **断言(Assertion)**:在Java中,`assert`语句用于在开发和测试阶段检查代码的正确性,通常在生产环境中关闭。如果assert后的条件为假,则抛出AssertionError。 7. **String对象的创建**:`new String("xyz")`...
10. **单元测试**:为了确保代码的正确性,开发者可能使用JUnit进行单元测试,测试各个类和方法的功能,确保它们按预期工作。 以上是“java实现的数独游戏”项目中可能涵盖的Java编程知识点,每个部分都体现了Java...
3. **Static Nested Class 和 Inner Class**: 内部类(Inner Class)是嵌套在其他类中的类,它可以访问外部类的所有成员,包括私有的。静态内部类(Static Nested Class)与普通内部类的主要区别在于,静态内部类不...
从一个static方法内部发出对非static方法的调用是不合法的,因为在类加载阶段static方法就被初始化了,此时可能还没有创建对象,而非static方法需要依赖具体对象。 2. final、finally、finalize的区别:final是修饰...
31. **嵌套(nested)**:在Java中,可以有嵌套类(内部类),一个类可以定义在另一个类的内部。 32. **跳转(goto)**:Java中没有`goto`关键字,但可以通过标签和`break`、`continue`实现类似功能。 33. **耦合...
3. **静态嵌套类(Static Nested Class)与非静态嵌套类(Inner Class)**:静态内部类不需要外部类的实例即可创建,而普通内部类需要。静态内部类不能直接访问外部类的非静态成员,但可以访问静态成员。 4. **位...
Java是一种广泛使用的面向对象的编程语言,其设计目标包括简单性、面向对象、健壮性和安全性等特性。在Java的面试中,理解基础知识和高级概念是至关重要的。以下是一些基于给定标题和描述的Java知识点的详细解释: ...
ss (匿名内部类) 是否可以 extends(继承)其它类,是否可以 implements(实现)interface(接口)?匿名内部类可以直接继承一个类或者实现一个接口。它没有名称,通常用于需要一次性定制的类或接口实现,特别是在需要简洁...
17. 访问修饰符`public`、`private`、`protected`和默认(包级私有)的区别在于可见性:`public`对所有类可见,`private`仅在当前类可见,`protected`在同一包及子类中可见,而默认仅在同一包内可见。 18. Overload...
白盒测试,也称为结构测试或逻辑驱动测试,是一种软件测试方法,它基于程序的内部逻辑结构和实现细节来设计测试用例。在白盒测试中,测试人员需要理解程序的源代码,关注点在于程序执行路径、控制流、数据流以及逻辑...
37. **generic**:泛型是Java 5引入的特性,允许在类、接口和方法中使用类型参数,以增强类型安全性和代码复用。 38. **heap**:堆是Java内存模型的一部分,用于存储动态分配的对象。 39. **implements**:`...
例如,在Java中,可以通过访问修饰符(如 `public`, `private`, `protected` 和 `default`)来控制类、方法、字段等的可访问性。这些修饰符决定了哪些部分的代码可以访问特定的类成员。 #### Algorithm (算法) - **...