关于static,新手求教

chimes298 2016-05-09 11:53:55
有两段相同功能的代码,一个使用static,一个new了实例。请问这两种方式,在实际应用中该如何选择,或者哪一种更好呢?

public class Test13 {
private static void print(){
System.out.println("Hello World");
}

public static void main(String[] args) {
print();
}

}


public class Test13 {
private void print(){
System.out.println("Hello World");
}

public static void main(String[] args) {
Test13 tt = new Test13();
tt.print();
}

}
...全文
185 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
HerveyHall 2016-05-11
  • 打赏
  • 举报
回复
静态方法中不能直接调用该类的非静态字段,如下:
public class TestStaticMethod {
	int a = 0;
	static int b = 0;

	int aa() {
		return a;
	}

	static int bb() {
		return b;
	}

	int ab() {
		return b;
	}

	static int ba() {
		// return a;(Error: Cannot make a static reference to the non-static
		// field a.)
		return new TestStaticMethod().a;// 如果不希望这个类在此被实例化就不要用静态方法
	}
}
javadszs 2016-05-10
  • 打赏
  • 举报
回复
静态的方法用类名直接可以调用,在mian函数里面用类名 . 你的方法名就行。一般开发项目的话都用用静态方法
chaser401 2016-05-10
  • 打赏
  • 举报
回复
静态方法使用时不需要创建对象,直接调用类名.方法名就好了,使用起来更为方便
爱睡觉的阿狸 2016-05-10
  • 打赏
  • 举报
回复
静态方法是通过类名直接调用的,一般在工具类中大量使用。 比如你的项目中有StringTools、SystemTools,那么其中必定含有大量的static方法,可以很方便的提供给外部调用。
  • 打赏
  • 举报
回复
第一个代码中省略了类名Test13.print(),其实就是调研这个Test13类方法print(),静态方法不需要创建对象,体现了这个类共有的特性。 第二个代码tt.print()是调用了类型为Test13的tt的方法print(),成员方法需要创建对象。
飏飏一蝶 2016-05-10
  • 打赏
  • 举报
回复
该类所有对象共有的,用static好些 对象独有的,即修改对象数据的方法,用一般方法
zyztmp 2016-05-10
  • 打赏
  • 举报
回复
这个得根据需求而定,有的需要静态,比如像Arrays()数组工具类。里面就有用到静态方法。
qq_34941962 2016-05-10
  • 打赏
  • 举报
回复
在test里面,调用test类的方法,没有必要创建对象

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧