2.类变量与实例变量区别: * 加上static称为类变量或静态变量,否则称为实例变量 * 类变量是与类相关的,公共的属性 * 实例变量属于每个对象个体的属性 * 类变量可以通过类名.类变量名直接访问 * Java面向对象编程的四大特征 * 抽象 * 封装 * 继承 * 多态 > 抽象 1.简单理解 我们在前面定义一个类时候实际就是把一类事物的共有的属性和行为提取出来,形成一个物理模型(模板),这种研究问题的方法称为抽象。 银行账号1 -----> 不管是哪种账号, 银行账号2 -----> 是谁的账号 银行账号3 -----> 都必须包括 --> 账号类 . 余额,账号号码 Account 银行账号n -----> 也必须包括: 取款,存款.. * 封装-什么是封装 封装就是把抽象出的数据和对数据的操作封装在一起,数据被保护在内部,程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作。 对电视机的操作就是典型封装。 * 封装-访问控制修饰符 电视机的开关,对音量,颜色的控制是公开的,谁都可以操作,但是对机箱后盖,主机板的操作却不是公开的,一般是由专业维修人员来玩。 ★ 那么在java中如何实现这种类似的控制呢? 请大家看一个小程序。Dfssd.java, 不能随便查看人的年龄,工资等隐私… /* 作者: 日期: 功能:this的必要性 */ public class dfssc { public static void main (String []args) { /*Dog dog1=new Dog(2,"小黄"); Person p1=new Person(dog1,23,"猪坚强"); Person p2=new Person(dog1,24,"狗坚弱"); p1.showInfo(); p1.dog.showInfo(); //int total=0; Child ch1=new Child(2,"妞妞"); ch1.joinGame(); //total++; Child ch2=new Child(4,"小小"); ch2.joinGame(); Child ch3=new Child(5,"大大"); ch3.joinGame(); //total++; System.out.println("共有="+ch3.total);*/ //创建一个学生实例 /* Stu s1=new Stu(21,"小红",3400); Stu s2=new Stu(23,"",4500); System.out.println(Stu.getTotalFee());*/ Clerk clerk1=new Clerk("小花",24,4567.6f); System.out.println("名字是"+clerk1.name+"她的薪水是"+clerk1.getSal()); } } //定义一个人类 class Person { //成员变量 int age; String name; Dog dog;//应用类型 public Person (Dog dog,int age,String name) { //可读性比较差 //this属于一个对象 this.age=age; |