1 /*
2 关于方法来说,什么时候定义为实例方法?什么时候定义为静态方法?
3 有没有参考标准。
4
5 此方法一般都是描述了一个行为,如果说该行为必须由对象去触发。
6 那么该方法定义为实例方法。
7
8 参考标准:
9 当这个方法体当中,直接访问了实例变量,这个方法一定是实例方法。
10
11 以后开发中,大部分情况下,如果是工具类的话,工具类当中的方法
12 一般都是静态的。(静态方法有一个优点,是不需要new对象,直接采用类名
13 调用,极其方便。工具类就是为了方便,所以工具类中的方法一般都是static的。)
14 工具类就是为了方便编程而开发的一些类。
17
18 类 = 属性 + 方法
19 属性描述的是:状态
20 方法描述的是:行为动作
21
22 一个方法代表了一个动作。
23
24 什么时候方法定义为实例方法?
25 张三考试,得分90
26 李四考试,得分100
27 不同的对象参加考试的结果不同。
28 我们可以认定“考试”这个行为是与对象相关的行为。
29 建议将“考试”这个方法定义为实例方法。
30 */
31 public class StaticTest05{
32 public static void main(String[] args){
33 User u = new User();
34 System.out.println(u.getId()); //0
35
36 //User.getId();
37
38 User.printName2();
39
40 User x = new User();
41 x.printName1();
42
43 // 访问T的id怎么访问
44 /*
45 T t = new T();
46 System.out.println(t.id);
47 */
48
49 User y = new User();
50 y.printName1();
51 }
52 }
53
54 class T{
55 // 实例变量
56 int id;
57 }
58
59 // 我之前怎么说的?实例变量访问的语法机制是什么?
60 // 语法:引用.实例变量名
61 class User{
62
63 // 实例变量,需要对象
64 private int id;
65
66 // 实例变量
67 private String name; // 首先先分析的是,这个name是对象级别的,一个对象一份。
68
69 //分析这个方法应该定义为实例方法还是静态方法呢?
70 // 打印用户的名字这样的一个方法。
71 public void printName1(){
72 System.out.println(name);
73 }
74
75 public static void printName2(){
76 // 输出的是一个对象的name
77 //System.out.println(name);
78 }
79
80 public void setId(int i){
81 id = i;
82 }
83
84 public int getId(){
85 return id;
86 }
87
88 /*
89 public static int getId(){
90 return id;
91 }
92 */
93 }