20200924
知识点
1.面向对象基本概念
1.1面向对象:
编程语言主要分为两大类:面向过程、面向对象
面向过程:
当需要实现某一个功能时,每一个步骤都亲力亲为,都参与。
面向对象:
当需要实现某一个功能时,不关心步骤
比如:
洗衣服
面向过程: 脱衣服 --> 打水、加洗衣粉 --> 泡 --> 洗
面向对象: 衣服
java 是一门典型的面向对象语言,面向对象相对于面向过程就是说从执行者变成了指挥者。面向对象
更符合我们思维/思考习惯,能把一个事情简单化。
比如:
吃饭
面向过程: 买菜 --> 洗菜 --> 切菜 --> 炒菜…
面向对象: 想吃什么?点餐 --> 吃
面向对象程序设计(OOP)是一种基于对象概念的软件开发方法
面向对象三大特征:
封装,继承,多态。
1.2对象:
在面向对象的世界中,万物皆对象。对象有状态和行为,也就是属性和功能。
简单理解就是真实存在的个体。
1.3类:
具有相同的状态和行为的一组对象的集合。
1.4类和对象的关系:
类是对象模板,对象是类的具体(实例)
类和对象的关系就是抽象和具体的关系
2.定义类
2.1步骤:
- 发现类,类定义了对象将会拥有的属性和方法
- 发现类的属性,对象所拥有的特性在类的表现叫做类的属性
- 发现类的方法,对象执行的操作在类中叫做类的方法
3.创建对象
类名 变量名 = new 类名();
new是关键字,称为实例化。
左边的类名为对象的数据类型。
右边的类名()称为类的构造方法。
4.方法
方法是完成特定功能的、相对独立的程序段。方法一旦定义,可以在不同的程序中多次调用。
方法的设计要遵循功能单一原则,即一个方法只干一件事。
4.1方法声明:
[修饰符] 返回值类型 方法名([参数列表]){ //方法头
//方法体
}
修饰符包括 public / private / protected / final / static
返回值类型是反映这个方法是否需要返回结果,如果方法没有返回值,就使用 void 关键字声明。
有返回值,就用返回值的类型声明。有返回值在方法体中就一定要用 return + 返回值; ,一个方法
只能有一个返回值。
方法名命名规范和变量命名规范相同,见名知意。
参数列表表示要执行/调用此方法需不需要传递参数,没有参数列表的叫做无参方法。多个参数之
间用 , 隔开,参数要声明类型。方法的参数叫做形参,调用方法传递的对应的参数叫做实参。
方法体是方法具体内容,里面不能够声明另外一个方法。
方法不调用是不会执行的
4.2方法调用
调用方法就是执行方法。发起调用的方法称为主调方法,被调用的方法叫做被调方法。
方法调用时需要注意,调用的方法如果需要传递参数,就需要在调用出传入相对应的参数
4.3方法的返回值:
一个方法只能有一个返回值,返回值类型在方法声明时已经确定,在方法头中声明。如果没有返回值使
用 void 关键字声明。有返回值,根据不同的返回值类型进行声明。有返回值的要在方法体中使用
return + 返回值; ,将结果返回到方法的调用处。
4.4方法的参数:
如果方法定义了参数,调用时就要传递参数(满足参数定义)
在定义方法时,不确定的数据要设计为方法参数,不变化的设计在方法体中。
被调方法中的参数称为形式参数,主调方法中的参数被称为实际参数
在传参过程中,基本数据类型传递的是值(值传递),引用数据类型传递的是地址/引用(值传
递,只不过传递的是地址)
Java 中只有值传递
4.5.可变参
是在方法的参数列表中声明 参数类型 + … + 变量名 。可变参表示,参数列表可以为空,也可以是任
意个当前数据类型的数据。
public static int add(int… n) {
//方法体
}
在方法体中,可变参的使用和数组的使用是一样的。所以,不能同时存在两个同名方法且参数列
表一个是数组,一个是可变参的类。 可变参只能出现在参数列表的最后一位,所以不能在一个方
法的参数列表中出现多个可变参。
5.方法重载
一个类中允许出现,方法名相同,参数个数、类型、顺序不同(参数列表不一样)的方法存在。这就叫
做方法的重载。方法的重载与返回值类型无关
6.实例方法
类的实例(也叫做 non-static )包括属性和方法,也称为实例变量和实例方法。
7.实例变量
实例变量,是声明在方法之外,类里面的变量。
public class Student {
//实例变量
String name;
char gender;
int age;
//实例方法
public void say() {
System.out.println(“say()”);
}
}
7.1实例变量的作用域
就近原则,实例变量的作用域是整个类,在这个类的所有实例方法中都可以访问。实例变量可以在定义
的时候不初始化值,因为实例变量在实例化对象后会有默认值,默认值根据实例变量的类型决定。
7.2实例变量与局部变量的区别
- 作用域不同
- 有无默认值
- 在同一个方法中不允许出现同名的局部变量
- 一个类中可以有同名的局部变量和实例变量,在方法中优先使用局部变量
8.构造方法
构造方法是一个特殊的方法
[访问修饰符] 方法名([参数列表]){ //方法头
//方法体
}
构造方法没有返回值,也不是 void
构造方法的方法名要和类名相同,包括大小写
今日总结:
感觉今天讲的东西有点多,下午听到实例变量这就有些吃不消了,后面的东西都听得模模糊糊,晚自习看了看也还是不清楚。
中午把昨晚作业的第二题改正了。思路就是把总分单独放在一个数组然后用冒泡排序法排序,在交换位置那一步时把成绩和姓名的位置一起交换后在输出。