面向对象编程快速入门:
计算机是用来处理数据的。
单个变量
数组变量
对象数据
Student类:
package cn.ensource.object;public class Student {String name;double chinese_score;double math_score;public void printTotalScore() {System.out.println(name + "的总成绩是: " + (chinese_score + math_score));}public void printAverageScore() {System.out.println(name + "的平均成绩是: " + (chinese_score + math_score) / 2.0);}
}
测试类:
package cn.ensource.object;public class Test {public static void main(String[] args) {// 目标:面向对象编程快速入门// 创建一个学生对象,封装波妞的数据Student s1 = new Student();s1.name = "播妞";s1.chinese_score = 100;s1.math_score = 100;s1.printTotalScore();s1.printAverageScore();Student s2 = new Student();s2.name = "播仔";s2.chinese_score = 59;s2.math_score = 59;s2.printTotalScore();s2.printAverageScore();}
}
开发一个一个的对象,把数据交给对象,再调用对象的方法来完成对数据的处理。
深刻认识面向对象:
1)面向对象编程的好处?
世界万物皆对象。
汽车的数据找汽车对象处理。
手机的数据找手机对象处理。
学生的数据找学生对象处理。
符合人类的思维习惯,编程更简单,更直观。
2)程序中的对象到底是个啥?
对象本质上是一种特殊的数据结构。
对象就是一个表。
对象是用类new出来的,有了类就可以创建对象。
类名 对象名 = new 类名();
3)对象是怎么出来的?
class也是类,也称为对象的设计图(或者对象的模板)。
面向对象编程这种套路是咋回事?
祖师爷认为万物皆对象,谁的数据谁处理。
面向对象编程(OOP):
把现实世界中的事物全部看成一个一个的对象来解决问题的。Java的核心思想:万物皆对象。
类(设计图):相同事物的共同特征的描述。
对象:对象是类的具体实例。对象和实例是一回事。
定义类的一些注意事项:
1)类名首字母建议大写、有意义、满足驼峰,不要用关键字,合法的标识符;
2)一个java文件中可以定义多个类,但是只能一个类是public修饰的,而且public修饰的类名必须成为java的文件名,否则报错。
类中具体怎么写呢?
一般名词定义为属性(成员变量)。修饰符、数据类型、变量名称 = 初始值。
private String name;
private double score;
成员变量不建议初始化,存在默认值,默认值的规则:0、0.0、null、false。
一般动词定义成方法(行为):修饰符、返回值、方法名(形参)
创建对象:
类名 对象名 = new 构造器();
对象的使用:
对象名.成员变量
对象名.成员方法
构造器:
构造器的作用:初始化类的对象,并返回对象的地址。
详细格式:
分类:无参数构造器(初始化一个类的对象,里面的数据都是默认值,并返回对象的地址)、无参数构造器(初始化一个类的对象,并返回对象的地址,并且可以同时为对象的成员变量赋值。)
构造器如何调用:
类名 对象名称 = new 构造器();
注意:任何类,自带一个无参数构造器,写不写都有;
如果在类中定义了一个又参数的构造器,那么无参数构造器就消失了,此时,如果还想使用无参数构造器,必须自己写一个。
构造器在IDEA中都是可以自动生成的。
this关键字:代表当前对象的地址。可以访问当前对象的成员对象和成员方法。
this具体用在什么地方?
1)可以用在有参数构造器中的。
2)在方法中,形参和局部变量跟成员变量相同,可以使用this来区别。谁调用方法,this就代表谁。
封装:封装是特点,按这个特点写。
面相对象的三大特征:封装、继承、多态
封装:就是将变量、方法放到一个事物中。决定属性和行为归属谁的问题。
如何更好地封装呢?
合理隐藏、合理暴露。
成员变量建议private私有化、只能本类访问。
合理暴露:提供成套的getter/setter方法,暴露取值和赋值。
代码可以自动生成。
标准JavaBean:
实体类:(学生类、老师类、汽车类、门类、人类)。
作用:创建对象,封装数据的。
标准Bean的书写要求:
成员变量建议private私有化、只能本类访问。
合理暴露:提供成套的getter/setter方法,暴露取值和赋值。
必须提供无参数构造器。
局部变量和成员变量的区别?
这个还是很好理解的。