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