方法的定义(实例与静态)
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 }