目录
一、面向对象编程快速入门
二、深刻认识面向对象
三、对象在计算机中的执行原理
四、类和对象的一些注意事项
五、其他语法:this
六、其他语法:构造器
七、其他语法:封装
八、其他语法:实体JavaBean
九、面向对象编程综合案例
十、补充知识:成员变量、局部变量的区别小结
前言
Student类
package com.ctgu.object; public class Student { String name; double chinese; double math; public void printTotalScore(){ System.out.println(name + "的总成绩是:" + (chinese + math)); } public void printAverageScore(){ System.out.println(name + "的平均成绩是:" + (chinese + math) / 2); } }
Test类
package com.ctgu.object; public class Test { public static void main(String[] args) { // 目标:面向对象编程快速入门 // 1、创建一个学生对象,封装波妞的数据 Student s1 = new Student(); s1.name = "波妞"; s1.chinese = 100; s1.math = 100; s1.printTotalScore(); s1.printAverageScore(); // 2、再创建一个学生对象,封装波仔的数据 Student s2 = new Student(); s2.name = "波仔"; s2.chinese = 59; s2.math = 100; s2.printTotalScore(); s2.printAverageScore(); } }
一、面向对象编程快速入门
- 开发一个一个的对象,把数据交给对象,再调用对象的方法来完成对数据的处理。
二、深刻认识面向对象
1、面向对象编程有啥好处?
- 汽车的数据 找汽车对象处理
- 手机的数据 找手机对象处理
- 学生的数据 找学生对象处理
- 符合人类思维习惯,编程更简单、更直观
2、程序中的对象到底是个啥?
- 对象本质上是一种特殊的数据结构。
- class也就是类,也称为对象的设计图(或者对象的模板)。
总结
1、面对对象编程有啥好处?
- 凡事找对象的编程思路,更加符合人类思维习惯,编程也会更直观。
2、对象是啥?如何得到?
- 对象是一种特殊的数据结构。
- 对象是用类new出来的,有了类就可以创建出对象。
3、面向对象编程这种套路是咋回事?
- 祖师爷认为万物皆对象,谁的数据谁处理。
三、对象在计算机中的执行原理
多个对象在计算机中的执行原理
总结
1、对象在计算机中的执行原理是怎么回事?
- Student s1 = new Student();
- 每次new Student(),就是在堆内存中开辟一块区域代表一个学生对象。
- s1变量里面记住的是学生对象的地址。
四、类和对象的一些注意事项
类和对象的一些注意事项
- 类名建议用英文单词,首字母大写,满足驼峰模式,且要有意义,比如:Student、Car...
- 类中定义的变量也称为成员变量(对象的属性),类中定义的方法也称为成员方法(对象的行为)。
- 成员变量本身存在默认值,同学们在定义成员变量时一般来说不需要赋初始值(没有意义)。
- 一个代码文件中,可以写多个class类,但只能一个用public修饰,且public修饰的类名必须成为代码文件名。
- 对象与对象之间的数据不会相互影响,但多个变量指向同一个对象时就会相互影响了。
- 如果某个对象没有一个变量引用它,则该对象无法被操作了,该对象会成为所谓的垃圾对象。
如果某个对象没有任何变量指向它,需要注意说明?
注意:当堆内存中的对象,没有被任何变量引用(指向)时,就会被判定为内存中的“垃圾”。
java存在自动垃圾回收机制,会自动清除掉垃圾对象,程序员不用操心。
五、this
this是什么
- this就是一个变量,可以用在方法中,来拿到当前对象。
Student类
package com.ctgu.thisdemo; public class Student { public void printThis(){ System.out.println(this); } }
Test类
package com.ctgu.thisdemo; public class Test { public static void main(String[] args) { // 目标:认识this,掌握this的应用场景。 Student s1 = new Student(); System.out.println(s1); s1.printThis(); System.out.println("---------------------"); Student s2 = new Student(); System.out.println(s2); s2.printThis(); } }
This的执行原理
this有啥应用场景呢?
- this主要用来解决:变量名称冲突问题的。
package com.ctgu.thisdemo; public class Student { double score; public void printThis(){ System.out.println(this); } public void printPass(double score){ if(this.score > score){ System.out.println("恭喜您,您成功考入了哈弗大学了~~"); }else{ System.out.println("落选了"); } } }
总结
1、this关键字是什么?
- this就是一个变量,可以用在方法中,用来拿到当前对象;哪个对象调用方法,this就指向哪个对象,也就是拿到哪个对象。
2、this关键字在实际开发中常用来干啥?
- 用来解决对象的成员变量与方法内部变量的名称一样时,导致访问冲突问题的。
多学一招:方法里的this到底是如何拿到调用它的对象的
六、构造器
关于构造器,需要同学们掌握的目标
构造器是什么样子?
构造器有什么特点?
- 创建对象时,对象会去调用构造器。
Student s = new Student();
构造器的常见应用场景
- 创建对象时,同时完成对对象成员变量(属性)的初始化赋值。
Student类
package com.ctgu.constructor; public class Student { String na