Java面向对象基础
第七章 类和对象
面向对象学习的三条主线:
1、Java类及类的成员:属性、方法、构造器;代码块、内部类。
2、面向对象的三大特征:封装性、继承性、多态性(抽象性)。
3、其他关键字:this、super、final、abstract、interface、package、import等。
一、面向过程和面向对象
1、面向过程(POP)
强调的是功能行为,一函数为最小单位,考虑怎么做。
2、面向对象(OOP)
强调具备了功能的对象,以类/对象为最小单位,考虑谁来做。
程序员从面向过程的执行者变为面向对象的指挥者。
二、面向对象的基本概念
1、面向对象
Java是一种面向对象的语言。其基本思想是把问题看成是若干个对象组成,这些对象之间是独立的,但又可以相互配合、连接和协调,从而共同完成整个程序要实现的任务和功能。
面向对象的三大特征:封装、继承、多态。
2、对象
对象是用来描述客观事物的一个实例(instance)。
3、类
类是具有相同属性和方法的以组对象的集合。类定义了对象将会有夫人特征(属性)和行为(方法)。类是抽象出来的。
4、类(Class)和对象(Object)的关系
类和对象的关系就是抽象和具体的关系。类是多个对象进行综合抽象的结果,是实体对象的概念,而一个对象是一个类的实例。
- 面向对象成绩设计的重点是类的设计;
- 设计类就是设计类的成员。
三、定义类
1、定义类
(1)语法结构
[访问修饰符] class 类名{
//类的内部具体代码
}
(2)代码
public class Person{
//类的内部具体代码
}
2、属性
属性 = 成员变量 = field
(1)语法结构
[访问修饰符] 数据类型 属性名;
(2)代码
public class Person{ //定义“人”类
public String name; //姓名
public String gender; //性别
public int age; //年龄
}
3、方法
方法 = 成员方法 = 函数 = Method
(1)语法结构
[访问修饰符] 返回类型 方法名(参数列表){
//方法体代码
}
(2)什么叫做方法?
我们将解决某个问题或者是算法的代码进行集合,让他们成为一个整体,在需要该功能时,可以方便的来调用执行,那么我们就将这个代码的集合称之为方法。
- 方法是解决一类问题步骤的有序组合;
- 方法在程序中可以被创建并且命名,在其他地方可以通过使用其名字来进行引用。
- 在不同的编程语言中,相同的概念其名字有可能不同,例如 Java 中就称之为方法(Method),
- 在 JavaScript、C 等语言中,则称之为函数(Function)。
(3)方法的优势:- 能够使我们的程序变得更加简短,而且结构更加清晰;
- 有利于程序的维护;
- 提高程序的开发效率;
- 提高了代码的重复性。
(4)在 Java 中,方法包含在类中,或者是对象中。
(5)Java 的入口方法,即 main 方法就是一个典型的方法结构
public static void main(String[] args) {
System.out.println("Hello World");
}
对于 main 方法按照语法结构,各个部分的结构是:
- 修饰词:public static
- 返回值类型:void
- 方法名:main
- 参数列表:String[] args
- 方法参数的本质就是在声明变量。
(6)补充
如果在 Java 中写出一个任意的单词:
- 如果这个单词后面没有携带任何标记,那么 Java 会将这个单词按照变量名识别。
- 如果这个单词后面携带了一对 [],那么 Java 会将这个识别为数组。
- 如果这个单词后面懈怠了一对 (),那么 Java 会将这个识别为方法。
对于方法来说,最明显的特征就是一对 ()。
(7)类的方法内是可以定义变量,是可以调用属性的,是可以调用方法的,但是不可以定义方法。
四、带参数的方法
方法的参数:当方法在运行时,需要调用者提供相关的数据,那么这个就称之为参数。
1、实参
(1)当调用该方法时,那么就需要向该方法传入一个有效的值,来参与该方法的运行,那么我们把调用时所传入的值或者是数据就称之为实际参数,简称实参。
(2)实参在进行传值时,是必须按照形参所要求的数据类型和顺序进行传递相关的值。
当创建方法时,所设定的参数,是没有任何有效的值,只是说明需要一个该类型的数据,
2、形参
(1)对于一些方法来说,其方法体在运行时,必须由方法的调用者来提供相关一些前置条件,只有在明确了这些条件后,才能够正常运行,那么这些前置条件就称之为方法的参数。 那么我们就将这个参数称之为形式参数,简称形参。
(2)形参是没有一个明确的值,只是说明该方法运行时,需要这么一个数据类型的值, 而且形参是不参与方法运行的。
3、可变参数
如果一个方法在运行时,所需要的参数个数是不确定,也就是说不需要参数也行、一个参数、两个参数、多个参数都可以,那么就需要使用到 Java 的可变参数。
五、有返回值类型return和无返回值类型void
1、无返回值类型void
(1)对于方法的调用者来说,有的方法在调用完毕之后,是不会给调用者任何数据的, 那么我们就将这种方法称之为无返回值的方法。
(2)对于没有返回值的方法,我们是必须使用关键字 void 来表示这个方法没有返回值
2、有返回值类型return
(1)当创建的方法在调用完毕后,调用者能够获得一个明确的结果,那么就必须在创建方法时,明确返回数据的类型,也就是有返回值类型。
(2)一个方法只能够返回一个数据。
(3)当一个方法明确的设定了返回值类型时,必须使用关键字return 来携带一个具体的数据。
3、return关键字
(1) 在有返回值类型的方法中:
- 表示方法运行到此处结束,返回到调用者,继续之后该方法之后的代码。
- 将 return 关键字后面所携带的数据交给调用者使用。
(2)在没有返回值类型的方法中,return 关键字表示方法运行到此处结束,返回调用者,同时return后面不用携带任何数据。
六、创建和使用对象
1、创建对象
(1)类是一类事物的集合和抽象,代表这类事物的共同的属性和行为。一个对象称为类的一个实例,是类一次实例化的结果。
(2)类的对象可以调用类的成员,如属性和方法等。
(3)语法格式:
类名 对象名 = new关键字 类名();
Person p1 = new Person();
2、使用对象
(1)通过类所设定的属性和方法会落实到一个具体的对象上,那么我们就可以通过这个对象来调用其属性和方法,也就是说,属性和方法归对象所拥有的。
(2)调用属性: 对象名.属性名
调用方法: 对象名.方法名()