一,面向对象的思想
面向:拿或者找
对象:东西
面向对象编程:拿或者找东西过来编程解决问题
面向对象:把现实世界中的事物全部看成一个一个的对象来解决问题的。(万物皆对象)
二,类和对象
类(设计图):相同事物共同特征的描述
对象:对象是类的具体的实例。
对象==实例
在Java中必须先定义类,才能得到对象。
三,定义类来创建对象使用
定义类的格式:
public class 类名{
1,成员变量。
2,构造方法。
3,成员方法。
4,代码块。
5,内部类。
}
定义类有一些注意事项
1、类名首字母建议大写,有意义,满足驼峰,不要用关键字,合法的标志符
2、一个Java文件中可以定义多个类,但是只能一个类是public修饰的,而且public修饰的类名必须 成为Java代码的文件名称,否则报错!
类中具体怎么写呢?
定义汽车类为例
一般名词定义成成员变量(属性):
修饰符 数据类型 变量名称 = 初始值;
private String name;
private double price;
成员变量不建议给初始化值,存在默认值,默认值的规则:整型是0,浮点型是0.0 引用类型null, 布尔型是false
一般动词定义成方法(行为)
具体定义类的例子
public class Car {
// 名词(属性,成员变量)
String name;
double price;
// 动词(行为,成员方法)
public void start(){
System.out.println(name + "价格是" + price +"启动成功~~");
}
public void run(){
System.out.println(name + "价格是" + price +"性能很好,跑的很快~~");
}
}
创建对象
类名 对象名 = new 构造器();
对象怎么使用
对象名.成员变量
对象名.成员方法
四,构造方法
作用:
初始化一个类的对象,并返回这个对象的地址。
详细格式:
修饰符 类名(形参){ .... }
构造方法的分类:
无参数构造方法
初始化一个类的对象,并返回这个对象的地址,里面的数据都是默认值
有参数构造方法
初始化一个类的对象,并返回这个对象的地址,并且可以同时为对象赋值。
构造方法如何调用呢?
类名 对象名 = new 类名;
注意:
任何类写出来自带一个无参数构造方法,写不写都有
如果你在这个类中定义了一个有参数构造方法了,那么无参数构造方法就消失了,此时,如果你还要 使用无参数构造方法,你必须自己写一个。
public class Car {
String name;
double price;
/**
无参数构造方法
*/
public Car(){
System.out.println("无参数构造器被调用了~~");
}
/**
有参数构造器
*/
public Car(String n, double p){
System.out.println("有参数构造器被调用了~~");
name = n;
price = p;
}
}
五,this关键字
this的作用:代表了当前对象的地址,可以访问当前对象的成员变量和成员方法。
this具体用在哪儿呢?
可以用在有参数构造方法中的
public Car(String name, double price){
// 注意:this在构造方法中,代表构造方法正在初始化的那个对象。
System.out.println(this);
this.name = name;
this.price = price;
}
可以用在方法中
public void goWith(String name){
// 注意:this在方法中,谁调用这个方法this就代表谁!
System.out.println(this.name + "正在和"+ name +"比赛");
}
六,封装
面向对象的三大特征:封装、继承、多态。
封装的基本思想:
决定属性和行为归属谁的问题
定义人类(名称,年龄,吃饭、睡觉)
定义圆类 : 半径,画圆
定义门类:开门,高宽
定义票类: 票价,地址,买票
如何更好的封装呢?
成员变量建议private私有化,只能本类访问了。
合理暴露:
提供成套的get和set方法暴露取值和赋值
标准JavaBean是什么?
就是所谓的实体类(学生类,老师类,汽车类,票类,人类)
作用:创建对象,封装数据的。
标准Bean的书写要求:
成员变量建议private私有化,只能本类访问了。
合理暴露:
提供成套的get和set方法暴露取值和赋值
必须提供无参数构造方法。
局部变量和成员变量的区别:
