静态类】【Java基础】java静态类和非静态类的区别

2020-12-19 15:46发布

9条回答
等等同学
2楼 · 2020-12-19 15:54

静态,指以static关键字修饰的,包括类,方法,块,字段。

非静态,指没有用static 修饰的。

静态有一些特点:

1.全局唯一,任何一次的修改都是全局性的影响

2.只加载一次,优先于非静态

3.使用方式上不依赖于实例对象。

4.生命周期属于类级别,从JVM 加载开始到JVM卸载结束。


天天
3楼 · 2020-12-19 16:09

(1)内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用。

(2)非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员。

(3)一个非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。


水默
4楼 · 2020-12-19 16:16

静态类和非静态类的主要区别:

主要区别在于静态类不能实例化,静态类编译器能够执行检查确保不是偶然的添加实例成员,C#编译器会自动把它标记为sealed,静态类中不能创建非静态的方法,即静态方法中只能创建静态方法,但在非静态类中可以调用静态方法。

静态类的主要特性:

1:仅包含静态成员。

2:无法实例化。

3:是密封的。

4:不能包含实例构造函数。

5:非静态类可以包含静态的方法、字段、属性或事件;

6:静态方法和属性不能访问其包含类型中的非静态字段和事件

7:静态方法只能被重载,而不能被重写,因为静态方法不属于类的实例成员;

8:C# 不支持静态局部变量(在方法内部定义静态变量)。

非静态类在使用时必须要实例化,每次使用时都要进行实例化,一般情况下使用比较频繁的类,可以使用静态类,比如LogClass,ConfigClass等等。


请叫我雷锋叔叔啊
5楼 · 2020-12-19 22:19

(1)内部静态类不需要有指向外部类的引用。但非静态内部类需要持有对外部类的引用。

(2)非静态内部类能够访问外部类的静态和非静态成员。静态类不能访问外部类的非静态成员。他只能访问外部类的静态成员。

(3)一个非静态内部类不能脱离外部类实体被创建,一个非静态内部类可以访问外部类的数据和方法,因为他就在外部类里面。

studentaaa
6楼 · 2020-12-20 09:43

静态变量

可以将静态变量理解为类变量(与对象无关),而实例变量则属于一个特定的对象。

静态变量有两种情况:

静态变量是基本数据类型,这种情况下在类的外部不必创建该类的实例就可以直接使用

静态变量是一个引用。这种情况比较特殊,主要问题是由于静态变量是一个对象的引用,那么必须初始化这个对象之后才能将引用指向它。因此如果要把一个引用定义成static的,就必须在定义的时候就对其对象进行初始化

HARPPRTのIT
7楼 · 2020-12-20 17:08

静态类和非静态类的主要区别:
  主要区别在于静态类不能实例化,静态类编译器能够执行检查确保不是偶然的添加实例成员,C#编译器会自动把它标记为sealed,静态类中不能创建非静态的方法,即静态方法中只能创建静态方法,但在非静态类中可以调用静态方法。
  静态类的主要特性:
  1:仅包含静态成员。
  2:无法实例化。

清屿
8楼 · 2020-12-20 18:40

这里的静态,指以static关键字修饰的,包括类,方法,块,字段。

非静态,指没有用static 修饰的。

静态有一些特点:

1.全局唯一,任何一次的修改都是全局性的影响

2.只加载一次,优先于非静态

3.使用方式上不依赖于实例对象。

4.生命周期属于类级别,从JVM 加载开始到JVM卸载结束。


天才小馒头
9楼 · 2020-12-20 20:10

这里的静态,指以static关键字修饰的,包括类,方法,块,字段。

非静态,指没有用static 修饰的。


相关问题推荐

    没有解决我的问题,去提问