黑马程序员 ---- static 类方法
来源:互联网 发布:网络对战射击游戏 编辑:程序博客网 时间:2024/06/15 11:05
------- android培训、java培训、期待与您交流! ----------
例1:class Person{String name;static String city = "China";int age;public Person(String name,int age){this.name = name;this.age = age;}public String talk(){return name+"\t"+age+"\t"+city;}public static void setCity(String c){city = c;}}public class Test01{public static void main(String[] args){Person p1 = new Person("zhansan",20);Person p2 = new Person("lisi",25);Person p3 = new Person("wangwu",30);System.out.println(p1.talk());System.out.println(p2.talk());System.out.println(p3.talk());System.out.println("*****************修改之后*********************");Person.setCity("USA");// 由 Person 调用 setCity() 方法,对 city 的内容进行修改。System.out.println(p1.talk());System.out.println(p2.talk());System.out.println(p3.talk());}}
注意:
1. 静态方法只能访问静态成员(静态先加载,非静态还未加载,所以不能访问非静态)。 非静态方法既可以访问静态也可以访问非静态。
2. 静态方法中不可以定义 this 、 super 关键字。( 因为 this 和 super 都代表对象,而静态优先于对象存在,所以静态方法中不可以出现 this 、super 。)
3. 主方法必须是静态的。
例2: class Person {String name;public static void show(){System.out.println("hh");// show 这个功能没有访问到非静态数据 name 时,show 功能可以定义成静态的。}}class privateTest{public static void main(String[] args){//Person p = new Person();//p.show();Person.show();//直接用类名调用函数。}}
例3: class Person{String name;public static void show(){System.out.println(name+"\t"+"hh");}}class Test{public static void main(String[] args){Person p = new Person();p.show();}}
运行结果:
Exception in thread "main" java.lang.Error: 无法解析的编译问题:
不能对非静态字段 name 进行静态引用
at Person.show(Test.java:7)
at Test.main(Test.java:16)
例4:class Person{String name;public void show(){System.out.println(name+"\t"+"hh");}}class Test{public static void main(String[] args){Person p = new Person();p.show();}}
点评:什么时候使用静态方法?
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。
0 0
- 黑马程序员 ---- static 类方法
- 黑马程序员 ---- static 类变量
- 黑马程序员-static关键字
- 黑马程序员---static 静态
- 黑马程序员-static
- 黑马程序员--static
- 黑马程序员:static
- 黑马程序员-static关键字
- 黑马程序员-static关键字
- 黑马程序员--static关键字
- 黑马程序员--static 关键字
- 黑马程序员Java ----static
- 黑马程序员-----------static关键字
- 黑马程序员--OC自学笔记---03类方法、匿名类、封装、关系、重载、static
- 黑马程序员—Java面向对象(类和对象、封装、构造方法、this关键字、static关键字)
- 黑马程序员_静态static
- 黑马程序员---static的用法
- 黑马程序员-----static静态关键字
- 解决dynamips在X64WIN下找不到telnet.exe的问题
- 创建含有category的静态库,selector not recognized的解决方案
- 修改 tomcat端口为 80后 提示 80端口被System占用的问题!
- Android开发——android调试工具集【转】
- Unicode转utf-8
- 黑马程序员 ---- static 类方法
- 顿悟人生十一句话
- Xcode4.3 Archive和发布中的错误
- JMS学习笔记(三)——消息头
- Valid signing identity not found解决办法(原有IDP私钥丢失)
- Oracle自动归档模式下硬盘空间满了报错
- 英语学习笔记5:hard&soft skills
- uva oj 401
- Qt调用dll中的功能函数