1, 什么是面向对象, 什么是面向过程 ?
面向过程:凡事都亲力亲为;(创建一个类,在类里编写程序,实现功能,视为过程) 用程序编写如何实现一事件的过程; 由哪到哪 得写出如何走 理解为:我该怎么做。
面向对象:一些事不用自己去做,也能完成; 由哪到哪 只写出走就行 理解为:我该找谁做
面向过程的缺点:1.数据缺少对数据的封装,比较零散;每次用到相同 数据的时候,都需要重写,代码不能复用,可操作性差;
2, 类, 对象, 成员变量(属性,静态属性), 成员方法(方法, 动态属性), 局部变量分别的含义 ?
3, 面向对象的特点有什么 ?
封装 继承 多态
4, 如何在程序中创建一个对象 ?(首先要定义一个类)
类体
成员变量的作用范围(整个类)
类和类之间的关系
关联关系(不好下一个定义描述关联关系, 比较弱的关系)
*继承关系(extends关键字)
什么是一种什么
聚合关系
聚集
球队->队长
组合
一个类的组成部分是必不可少的
*实现关系
5, 成员变量在类中是如何初始化的 ?
初始值
byte 0
short 0
int 0
long 0L
float 0.0F
double 0.0D
boolean false
char '/u0000'
引用类型 null
(所有的类, 所有的接口, 所有的数组)
6, 如何更好的设计一个类 ?
合适的方法出现在合适的类里面
7, 什么是类的封装 ?
private关键字修饰的成员变量, 只能在当前类中使用
8, 什么叫构造方法 ? 构造方法的重载 ? // 方法名相同, 参数列表不同
构造方法:
就是用来构造一个对象的方法
1, 构造方法没有返回值, 没有返回值也不能写void
2, 构造方法名与类名一模一样
3, 定义一个类的时候, 如果没有写任意的一个构造方法, 则默认生成一个空参的构造方法
4, 当一个类中有定义的带参数的构造方法的时候, 则空参的构造方法会消失
练习: 封装一个Student类
姓名 String
年龄 int
语文分数 double
数学分数 double
方法: 显示姓名, 年龄, 总分, 平均分
// 分别以set方法和构造方法赋值
package wei;
public class Duix {
public Duix() {};
public Duix(String _name,int _age,int _yuWen,int _shuXue){
name = _name;
age = _age;
yuWen = _yuWen;
shuXue = _shuXue;
}
private String name;
private int age;
private int yuWen;
private int shuXue;
public int getYuWen() {
return yuWen;
}
public void setYuWen(int _yuWen) {
yuWen = _yuWen;
}
public int getShuXue() {
return shuXue;
}
public void setShuXue(int _shuXue) {
shuXue = _shuXue;
}
public String getName() {
return name;
}
public void setName(String _name) {
name = _name;
}
public int getAge() {
return age;
}
public void setAge(int _age) {
age = _age;
}
public void jS() {
System.out.print(name + " " + age + " " + (yuWen + shuXue) + " " + (yuWen + shuXue) / 2);
}
}
public class Text {
public static void main(String[] args) {
/*Duix xx = new Duix();
xx.setName("刘德华");
xx.setShuXue(80);
xx.setAge(8);
xx.setYuWen(70);
System.out.print("姓名" + " " +"年龄"+ " " +"总成绩"+ " " +"平均分");
System.out.println();*/
//xx.jS();
Duix xx = new Duix("刘德华",8,80,70);
xx.setName("刘德华2");
xx.jS();
}
}
9, this关键字代表的含义是 ? 该如何使用
当前对象的引用;
可以用来解决传入的参数和成员变量重名的情况
还可以用来调用当前类中的其他的构造方法
10, static关键字代表的含义是 ? 该如何使用 ?
静态的 用于修饰变量 ,方法
(static修饰的变量不存在于堆和栈的空间中,存在于数据区;
不管实例化多少对象,所有的对象都共享一份;
不能实例化,直接用类名点出来)
修饰 类
(做一些工具类的 使用)
11, 单例模式介绍
只能实例化多少对象 ,,,只有一个变量
有饿汉式和懒汉式两种
把构造方法改成私有的,在当前类实例化,然后用static修饰,在外面获取的对象就共享一个Driver属性了
12, 文档注释的使用
可以用来描述类,方法,变量
格式
/*(内容)
*(内容)
*(内容)
*(内容)
*/