面向对象(上):
1, 什么是面向对象, 什么是面向过程 ?
面向对象是用什么方法做某事,这件事是对象,方法不管
面向过程是用什么方法做某事,这个方法就是过程
2, 类, 对象, 成员变量(属性,静态属性), 成员方法(方法, 动态属性), 局部变量分别的含义 ?
3, 面向对象的特点有什么 ?
封装
private(public)
继承
多态 重名的变量名有不同的表现形式
Cut
Cut
4, 如何在程序中创建一个对象 ?(首先要定义一个类)
类体
成员变量的作用范围(整个类)
练习: 编写一个Person的类, 使其有一个方法可以调用, 并打印出姓名和年龄
我叫..., 今年多少岁
类和类之间的关系
关联关系(不好下一个定义描述关联关系, 比较弱的关系)
一个类中的某个方法的参数是另一个类的对象
一个类中的成员变量是另一个类的对象
*继承关系(extends关键字)
什么是一种什么
聚合关系
聚集
球队->队长 不是比不可少的
组合
一个类的组成部分是必不可少的
*实现关系
机器人:
走
跑
跳
5, 成员变量在类中是如何初始化的 ?
byte 0
short 0
int 0
long 0L
float 0.0F
double 0.0D
boolean false
char '/u0000'
引用类型 null
(引用类型是:所有的类, 所有的接口, 所有的数组)
6, 如何更好的设计一个类 ?
合适的方法出现在合适的类里面
7, 什么是类的封装 ?
private关键字修饰的成员变量, 只能在当前类中使用 需要用get,set
public class Emp { // 构造方法 /* public Emp() { System.out.println("空参的构造方法"); name = "Tom"; sal = 12345; age = 30; }*/ public Emp() {} public Emp(String _name, int _age) { //对外公开的方法 System.out.println("有参数的构造方法被调用了"); name = _name; age = _age; } private String name; // 姓名 private double sal; // 工资 private int age; // 0 - 120 1000 public void introduce() { System.out.println("我叫" + name + ", 工资是: " + sal + "今年" + age + "岁"); } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getSal() { return sal; } public void setSal(double sal) { this.sal = sal; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
8, 什么叫构造方法 ? 构造方法的重载 ? // 方法名相同, 参数列表不同
构造方法:
就是用来构造一个对象的方法
1, 构造方法没有返回值, 没有返回值也不能写void
2, 构造方法名与类名一模一样
3, 定义一个类的时候, 如果没有写任意的一个构造方法, 则默认生成一个空参的构造方法
4, 当一个类中有定义的带参数的构造方法的时候, 则空参的构造方法会消失
![](/qrcode.jpg)