JavaSE第四章——面向对象(上)
文章目录
面向过程的设计思想
1、分析出解决问题所需要的步骤,然后把步骤一步一步实现。
2、面向过程直接关注流程。
举个列子:
煮甜玉米:第一步给打开锅盖
第二步把甜玉米放进锅里
第三步烧火,把玉米煮熟咯
第四步把甜玉米捞出来
面向对象的设计思想:首先宏观的对整个
1、以分类的方式进行思考和解决问题。
2、面向对象先对整体关系做出分类,然后根据不同的类深入细节的处理。
3、面向对象的思想符合人类的认知习惯。
举个例子:
做饭——做面食,米饭
人
人做饭()
面向过程和面向对象是相辅相成的,面向过程是具体实现。
先有对象,后有类。
对象—指的是一个具体的存在。
java类
什么是类?
类是一个模板,它是描述一类事物的属性和行为的集合。
类表示一个客观世界某类群体的一些基本特征抽象。
类的结构
成员变量:事物属性的描述;
方法:事物的行为;
构造方法:用于创建对象;
内部类:在类体中声明的类。
块:一段没有名称的代码。
Java类的定义
第一步:发现类
类的声明格式为:
[访问权限修饰符] [修饰符] class Car{
}
访问权限修饰符有两种:public,默认(不写访问权限修饰符)
修饰符:final,abstract
关键字class用来定义一个类
Java关键字的命名规范:
类名中首字母大写,见名知意,驼峰表示。
第二步:发现类的共有属性(成员变量)
public class Car{
//成员变量定义
String name; //名称
String color;// 颜色
float price;//价格
}
声明成员变量的格式为:
[访问权限修饰符] [修饰符] 变量名 [=defaultValue默认值]
第三步:发现类的方法
方法声明格式为:
方法名首字母小写
[访问权限修饰符] [修饰符] void start(){
System.out.println(“汽车启动”);
[return 返回值;]
}
}
Java对象
对象:对象是类的一个实例,是以类为模板在内存中创建的实际存在的实例。
对象的创建和使用
/**
* @author 辉欲静,而风止。
* 对象的创建和使用
*/
public class SetObject {
public static void main(String[] args) {
SetObject s = new SetObject();
/*
SetObject s :使用SetObject类作为类型声明一个变量s
new SetObject():使用new+setObject类构造方法创建对象。
= 将右边创建的对象地址赋给嘴边的s变量
使用s变量访问对象中的成员变量和成员方法
*/
}
}
同一类的每个对象有不同的成员变量存储空间。
同一个类的每个对象共享该类的方法。
类和对象
总结类和对象
类是一类事物的抽象概念,是一个模型。
对象是由这个模型所创造的一个个具体存在的,实实在在的实例。
所以把创建对象的过程也叫实例化对象。
现实生活中现有对象后有类,而编程时先设计类后创建对象。
变量分类
按照位置变量分为:
成员变量:
成员变量是定义在类中,方法之外的变量。
成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)
在定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。
成员变量在创建对象的时候会从类中复制一份到对象中。
成员变量可以被类中的方法、构造方法和特定类的语句块访问。
成员变量的作用范围为整个类体。
局部变量:
在方法、构造方法或者语句块中定义的变量称之为局部变量。
局部变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。
局部变量在使用前必须初始化赋值。
变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
构造方法又称构造器。构造器用于构造该类的实例,也就是对象
格式如下:[修饰符] 类名(形参列表){
//n条语句
}
构造方法是一种特殊的方法,与一般的方法区别:
1、构造方法的名字必须与定义它的类名完全相同,没有任何返回类型,甚至连void也没有。
public class SetObject {
public SetObject(){
System.out.println("这里是构造方法");
}
public void SetOject(){
System.out.println("这里是一般方法");
}
public static void main(String[] args) {
SetObject s = new SetObject();
}
}
运行结果:
这里是构造方法
2、构造方法的调用是在创建一个对象时使用new操作进行的。构造方法不能被子类继承。
3、不能被static、final、synchronized、abstract和native修饰。构造方法不能被子类继承。
构造方法可以被重载。没有参数的构造方法称为默认构造方法,与一般的方法一样构造方法可以进行任何活动,但是经常将它设计为进行各种初始化活动,比如初始化对象的属性。
在Java中,任何变量在使用前都必须先设置初值。
构造方法(constructor)它的特殊性反映在如下几个方面:
(1)构造方法名与类名相同.
(2)构造方法不返回任何值,也没有返回类型.
(3)每个类可以有零个或多个构造方法.
例:public class Car{
public Car(){}
public Car(String name){//这个构造方法有一个参数:name}
}
例:
创建Car类对象
Car c1 = new Car();
Car c2 = new Car("宝马");
(4)构造方法在创建对象时自动执行,一般不能显式地直接调用.
方法分类
成员方法:成员方法时定义在类中。
语法格式:修饰符 返回值类型 方法名(参数列表){
方法体语句;
[return 返回值]
}
构造方法:用来初始化对象的方法
(这里不再赘述)
方法的重载
方法的重载是指同一个类中具有相同的名字,但参数不同的多个方法。
参数不同(可以有三方面不同)
数量不同
类型不同
顺序不同
调用时,会根据不同的参数选择对应的方法。
注意:方法重载跟方法的返回值类型没有任何关系
调用.
方法分类
成员方法:成员方法时定义在类中。
语法格式:修饰符 返回值类型 方法名(参数列表){
方法体语句;
[return 返回值]
}
构造方法:用来初始化对象的方法
(这里不再赘述)
方法的重载
方法的重载是指同一个类中具有相同的名字,但参数不同的多个方法。
参数不同(可以有三方面不同)
数量不同
类型不同
顺序不同
调用时,会根据不同的参数选择对应的方法。
注意:方法重载跟方法的返回值类型没有任何关系