Java面向对象面试题分析:静态变量和静态方法

Java面向对象面试题分析:静态变量和静态方法,第1张

Java面向对象面试题分析:静态变量和静态方法

类一般是个抽象的概念,而对象则是类的实例,比如人类的实例对象是张三这个大活人。在用法上,我们一般是通过new关键字初始化一个类的实例,然后再调用类里的方法。比如 人类 张三 = new 人类();,再是张三.思考();。

在这种情况下,我们一般不会用人类.思考();这样的调用方式,因为抽象的人类是无法思考的。

不过在有些场景下,我们可以通过类.方法();的形式来调用。比如当我们用Math这个提供计算方法的类计算绝对值时,用的是Math.abs(-2),而不是先通过Math初始化一个对象再调用,这个原因是abs是静态方法。我们通过StaticDemo.java这个例子来看下静态类的用法。

1	public class StaticDemo {
2	    private static int value = -2;	
3		static void print()	{
4	         //静态类里只能使用静态的变量
5			System.out.println(Math.abs(value));
6		}	
7		public static void main(String[] args) {
8	        //静态类里只能使用静态的方法 
9			StaticDemo.print();
10		}
11	}

我们发现静态类里只能使用静态的变量和方法,如果我们把第2行和第3行里针对静态变量和静态方法的static拿走,会报错。而在第9行里,我们是通过StaticDemo这个类(而不是new出来的对象)来调用print方法。

所以你被问到静态变量和静态类的用法时,可以说出如下要点。

要点1,由于可以不同new就能使用方法,一些程序员为了图省事,会大量定义静态方法,这样做会破坏类的封装性,而且会增加类之间的耦合度,所以只能在需要的场景下定义静态类。

要点2,静态变量相当于全局变量,所以只该把整个项目里都会用到变量设置成静态的。

要点3,在尽可能小的范围里使用静态类和静态方法。

 更多java面向对象面试题的讲解分析:

Java面向对象面试题讲解:类和实例的差别

Java面向对象面试题分析,你知道哪些Java访问修饰符

Java面向对象面试题分析:静态变量和静态方法

Java面向对象面试题分析:说出抽象类和接口的差别

Java面向对象面试题分析:说出final关键字的用法

Java面向对象面试题解析:说下方法的覆盖和重载

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5611678.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存