面向对象4——静态

静态的用例

1.除了对象调用方式外,还有一个类名调用方式。

2.虽然工具类可以使用,但是每一个功能都没有对该类的对象的特有数据进行访问,那么这些功能,就不需要对象调用,所以可以将这些功能都定义成static的类型。而且当这个类中的功能都被静态化后,只要使用类名调用即可。

3.当其他程序使用该类时,因为该类中有一个默认的构造函数,所以其他程序还可以建造该类对象。而该类并不需要对象就可以使用类中的成员,所以这个对象建立的就没有任何意义,为了提高程序的严谨性,应该强制不让其他程序建立该类的对象。该怎样禁止其他程序建立该对象?只要将该类的构造函数私有化,这样,你即使建立了该类的对象,也没有办法初始化。

如何制作类的帮助文档?

帮助文档的建立,方便你使用该类中的功能。

javadoc -d toolhelp -author -version ArrayTool.java其中:toolhelp时所建立的文件夹名-author作者名-version版本名@param      @return     

主函数

1.主函数是静态的,说明主函数只能直接访问静态的成员。

2.public static void main(String[] args)

publicjvm(虚拟机)调用的函数必须权限足够大,所以被public修饰。

static:主函数随着类的加载而加载,jvm不需要创建该类的对象即可以完成对函数的调用,所以是静态的。

void:主函数没有返回值(加上也不错)。

main:函数名,是固定的,jvm可以识别。

String[] args:主函数的参数列表,参数类型是一个祖父传输组类型的参数。args:参数名,可以自定义。

class MainDemo 

{

int x = 4;

public static void main(String[] args) 

{

当直接利用Sys来输出args时,会输出如下:

//System.out.println(args);//[Ljava.lang.String;@de6ced

//[Ljava.lang.String;@de6ced:通过这个结果看到,args指向了一个具体的数组实体。

//而且该数组中的元素是String类型的。

System.out.println(args.length);//0,//验证了args的长度是0

//通过两个输出语句,就可以验证,jvm给主函数传递的实际参数是: new String[0];

/*

这是jvm传入的默认值。

但是没什么用,所以我们在使用main时,可以自定义该主函数数组中的元素。

*/

如果在dos命令中输入:javac xxx.java

Java xxx haha hehe heihei xixi hiahia 和下面的输出结果一样

String[] arr = {"haha","hehe","heihei","xixi","hiahia"};

Test.main(arr);

}

public void show()

{

System.out.println("x="+x);

}

}

class Test

{

public static void main(String[] args) 

{

for(int a=0; a<args.length; a++)

{

System.out.println(args[a]);

}

}

}

静态代码块

1.格式:static{ code..;}

2.作用:当类加载进内存时,若需要进行一些内容的执行,完成一个类的初始化。就需要使用静态代码块来完成。给类进行初始化。

3.执行特点:当类别加载时,静态代码块就执行了,而且只执行一次,切优先于main函数执行。

4.class StaticCode

5.{

6. {

7. System.out.pritnln("AAAAA");

8. }

9. static

10. {

11. System.out.println("a");

12. }

13. StaticCode()

14. {

15. System.out.pritnln("cccccc");

16. }

17. static void show()

18. {

19. System.out.println("show run");

20. }

21.}

22.//输出:a,AAAAA,ccccc,a静态代码先执行,AAAAA构造函数在执行,ccccc最后执行函数

23.

24.

25.class StaticCodeDemo

26.{

27. static

28. {

29. System.out.println("b");

30. }

31. public static void main(String[] args) 

32. {

33. //StaticCode.show();

34. //StaticCode sc = null;//这种情况该类不会被装载。

35.

36. new StaticCode();

37.

38.// System.out.println("e");

39.// new  StaticCode();

40.// new  StaticCode();//3940只执行一次

41.// System.out.println("d");

42. }

43. static

44. {

45. System.out.println("c");

46. }

47.}

48.

49.//b c e a d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值