初阶
一、面向对象的思想
1.面向:拿或者找
2.对象:东西
3.面向对象编程:拿或者找东西过来编程解决问题
4.面向对象:把现实世界中的事物全部看成一个一个的对象来解决问题的
5.面向对象的好处:代码符合人类的思维习惯,编程程序更简单,看程序更容易理解
二、类、对象
1.类(设计图):相同事物共同特征的描述
2.对象:对象是类的具体的实例—对象==实例
3.在JAVA中必须先定义类,才能得到对象
三、定义类来创建对象的使用
1.定义类的格式
public class 类名{
1.成员变量(代表属性,一般是名词):数据类型 名称
2.成员方法(代表行为,一般是动词)
3.构造器()
4.代码块()
5.内部类()
}
2.注意事项
1.类名首字母建议大写,有意义,满足驼峰,不要用关键字,合法的标识符
2.一个Java文件中可以定义多个类,但是只能用private修饰,而且public修饰的类名必须成为Java代码的文件名称,否则报错
3.类的具体案例
成员变量不建议给初始化值,存在默认值,默认值的规则:整型(int)是0,浮点型(double)是0.0,引用类型(String)是null,布尔型(bool)是false
public class Stu {
//成员变量
String name;//数据类型 变量名 = 初始值
int age;
//成员方法
public void study(){
System.out.println("好好学习");
}
public void Homework(){
System.out.println("做作业");
}
}
5.创建对象
类名 对象名 = new 构造器();
//创建对象
Stu s = new Stu();
//使用成员变量
s.name = "RED";
s.age = 15;
System.out.println(s.name+","+s.age);
//使用成员方法
s.study();
s.Homework();
四、构造器
作用:初始化一个类的对象,并返回这个对象的地址
格式:修饰符 类名(形参){……}
分类:
无参数构造器:初始化一个类的对象,并返回这个对象的地址,里面的数据都是默认值
有参数构造器:初始化一个类的对象,并返回这个对象的地址,并且可以同时为对象赋值
构造器的调用:类名 对象名 = new 构造器;
注意:1.任何类写出来自一个无参数的构造器,写不写都有
2.如果在这个类中定义了一个有参数构造器了,那么无参数构造器就消失了,此时,如果还要使用无参数构造器,你必须自己写一个
五、this关键字
作用:代表了当前对象的地址,可以访问当前对象的成员变量和成员方法
this可以用在有参数构造器中/可以用在方法中
//有参数构造器中
public Stu(String name, int age) {
this.name = name;
this.age = age;
}
//方法中
public void seatWith(String name){
System.out.println(this.name + "和" + name + "为同桌");
}
六、面向对象三大特征之一:封装
决定属性和行为归属谁的问题
1.更好地封装:成员变量建议private私有化,只能本类访问,提高程序的安全性
2.合理暴露:提供成员成套的getter和setter方法暴露取值和赋值(利用Alt+Insert可自动生成)
3.增强系统的可维护性
七、标准JavaBean
是实体类(学生类,老师类,汽车类,票类)
作用:创建对象,封装数据的
标准Bean书写要求:
1.必须提供无参数构造器
2.更好地封装:成员变量建议private私有化,只能本类访问
3.合理暴露:提供成员成套的getter和setter方法暴露取值和赋值(利用Alt+Insert可自动生成)
//创建一个电影类
public class movie {
//1.成员变量
private String name;
private double score;
private String director;
//无参数构造器
public movie() {
}
//有参数构造器
public movie(String name, double score, String director) {
this.name = name;
this.score = score;
this.director = director;
}
//2.getter&setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getScore() {
return score;
}
public void setScore(double score) {
this.score = score;
}
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
}