● 面向过程和面向对象的设计思想
● java类
● Java类的定义
● java对象
● 对象的创建和使用
● 构造方法
● 方法的重载
面向过程和面向对象
● 面向过程:procedure oriented programming 缩写 POP
Ø分析出解决问题所需要的步骤,然后把步骤一步一步实现。
Ø面向过程直接关注流程。
● 面向对象:object oriented programming 缩写 OOP面向对象的编程语言
Ø 以分类的方式进行思考和解决问题。
Ø 面向对象先对整体关系作出分类,然后根据不同的类深入细节的处理。
Ø 面向对象的思想符合人类的认知习惯。
Java类
● 什么是类?
类是一个模板,它描述一类事物的属性和行为的集合. 类是表示一个客观世界某类群体的一些基本特征抽象.
类的结构:
Ø成员变量:事物属性的描述;
Ø方法:事物的行为;(可以做的事情)
Ø构造方法:初始化对象;
Ø内部类: 即在类体中声明的类。
Ø块:一段没有名称的代码块
Java类的定义
1.定义格式
[修饰符] class 类名 [extends 父类名] [implements 接口名]{
// 类体,包括类的成员变量和成员方法
}
2.声明(定义)成员变量
声明(定义)成员变量的语法格式如下:
[修饰符] 数据类型 变量名 [ = 值];
3.声明(定义)成员方法
[修饰符] [返回值类型] 方法名([参数类型 参数名1,参数类型 参数名2,...]){
//方法体
...
return 返回值; //当方法的返回值类型为void时,return及其返回值可以省略
}
● 修饰符:方法的修饰符比较多,有对访问权限进行限定的(如public、protected、private),有静态修饰符static,还有最终修饰符final等,这些修饰符在后面的学习过程中会逐步讲解。
● 返回值类型:用于限定方法返回值的数据类型,如果不需要返回值,可以使用void关键字。
● 参数类型:用于限定调用方法时传入参数的数据类型。
● 参数名:是一个变量,用于接收调用方法时传入的数据。
● return关键字:用于结束方法以及返回方法指定类型的值,当方法的返回值类型为void时,return及其返回值可以省略。
● 返回值:被return语句返回的值,该值会返回给调用者。
Java对象
对象的创建和使用
● 对象的创建和使用 Car x1 = new Car();
Car x1:使用Car类作为类型声明一个变量x1.
new Car():使用new + Car类构造方法创建对象.
= :将右边创建的对象地址 赋给 左边的x1变量 使用x1变量访问对象中的成员变量和成员方法.
● 同一类的每个对象有不同的成员变量存储空间。
● 同一类的每个对象共享该类的方法。
类和对象
● 总结类和对象 类是一类事物的抽象概念,是一个模型. 对象是由这个模型所创造的一个个具体存在的,实实在在存在的实例. 所以创建对象的过程也叫实例化对象。
● 现实生活中先有对象后有类,而编程时先设计类后创建。
变量分类
按照位置变量分为:
● 成员变量: 成员变量是定义在类中,方法体之外的变量。
成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。在定义成 员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。成员变量 在创建对象的时候会从类中复制一份到对象中。
成员变量可以被方法、构造方法和特定的语句块访问。 成员变量的作用范围为整个类体。
● 局部变量:
在方法、构造方法或者语句块中定义的变量被称为局部变量。
局部变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)。局部变量 在使用前必须初始化赋值。
变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
方法的重载:
● 方法的重载是指同一个类中具有相同的名字,但参数不同的多个方法。
● 参数不同(可以有三方面的不同)
● 数量不同 ● 类型不同 ● 顺序不同
● 调用时,会根据不同的参数表选择对应的方法。 • 注意:方法重载跟方法的返回值类型没有任何关系。
值传递与引用传递:
● 值传递与引用传递
● Java中进行方法调用中传递参数时,参数传递有两种:
● 值传递:(形参数类型是基本数据类型):方法调用时,实际参数把它的值传递给 对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是 两个不同的存储单元,所以方法执行中形式参数值的改变不影响实际参数的值。
● 引用传递:(形参数类型是引用数据类型参数):也称为传地址。方法调用时,实 际参数是对象,这时实际参数与形式参数指向同一个地址,在方法执行中,对形 式参数的操作实际上就是对实际参数的操作,这个结果在方法结束后被保留了下 来,所以方法执行中形式参数的改变将会影响实际参数。
基本类型传递的是该数据值本身。引用类型传递的是对对象的引用,而不是对象本身