方法的定义(实例与静态)

 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 }

 

posted @ 2020-06-17 15:14  1998青年  阅读(230)  评论(0编辑  收藏  举报