1 面向对象思想概述(面向过程) 特点: 1)更符合生活中的思想行为习惯 2)角色发生了变化 从执行者变成指挥者 3)指挥一个具体的事物完成事情(可以将复杂的事情简单化) 面向对象的三大特征: 封装(encapsulation) 继承(inheritance) 多态(polymorphism)
我的理解 :就是不用自己亲历亲为 让对象来做 就是不断的创建对象 使用对象 指挥对象做事情
面向过程 : 做饭-----买菜------处理食材------下锅----放作料—出锅
面向对象 : 做饭-----找人做饭-------出锅
2类与对象的关系 类和对象之间的关系: 类(计算机语言)------->描述现实世界的一个事物
类:是Java中最基本的单元,class 描述一个事物的一组属性和行为的集合!
学生事物 ------>class Student{} 属性:姓名,年龄,性别... 成员变量:位置 在类中,方法外 行为:玩游戏,吃饭,睡觉... 成员方法 class Teacher{ 成员变量; 姓名; 年龄; 性别; 成员方法: public void playgame(){...} public void eat(){...} public void sleep(){...} }3 类中内存分布图 4 成员变量,局部变量两者之间的区别 1)在类中书写的位置不同 成员变量:类中方法外定义的变量 局部变量:方法定义中,或者是在方法声明上定义的变量
2)在内存中的位置不同: 成员变量:存储在堆内存 局部变量:存在栈内存(跟方法有关) 3)生命周期不同: 成员变量:跟类有关系,当该对象创建完毕,整个类中的变量全部初始化完,等待Gc回收 局部变量:跟方法有关,随着方法的调用而存在,随着方法的调用完毕而消失 4)初始化不同:0 成员变量: 可以不初始化,系统默认给默认初始化值(引用类型:null,基本类型:根据具体类型) 局部变量: 1)定义变量 在使用之前进行赋值,否则编译不通过 2)直接初始化5引用类型(类作为形式参数,如何传递)
参数传递: 基本类型作为参数传递: 形式参数的改变对实际参数没有影响! 应用类型作为参数传递: 形式参数改变会直接影响实际参数,(传递的是当前对象的空间地址值)6什么是匿名对象 没有名字的对象 对象的一种简化表示方法 1:new Student().show(); 2:new StudentTest().method(new StudentDemo());
7封装 以及private关键字 为了不让外面轻易修改 可以引入private关键字 有了Private 修饰 比如 private int a; int a就不会被外面读取, 但是可以通过公共读取,public
//关于封装 class Demo{ //定义成员变量 int num=100; private int num2=200; public void show(){ System.out.println(num); } public void method(){ System.out.println(num); System.out.println(num2); } public void function(){ show(); method(); } } class Code{ public static void main(String[] args){ Demo d=new Demo(); //编译会失败 //System.out.println(d.num) d.show();//可以 通过公共访问 //d.method(); d.function();//可以编译 } }