面向对象基础
1.面向对象思想
面向对象的思想其实就是让我们**去指挥别人**或者是**使用工具**帮我们去把要做的事情完成。
2.类和对象
2.1 概念
类:对一类事物共同点的 描述
对象:对象是某类事物的一个 个体
类仅仅只是描述,我们要指挥事物指挥的肯定是某类事物中的一个个体。我们去指挥或者使用事物的时候肯定是使用其中的具体的个体也就是对象。
2.2 类的定义
我们去描述一类事物的共同点可以分成两种,一种是属性,一种是行为(技能)。
属性:具有具体的值的共同点就是属性(例如:姓名,年龄,血量),我们用成员变量表示
行为(技能): 具体的技能或功能这些都是包含了一系列的动作。这些共同点就是行为,我们用成员方法表示。(例如:吃饭,睡觉)
成员变量:定义在类中方法外的变量就是成员变量。
成员方法:没有static修饰的方法就是成员方法。
public class Phone {
// 成员变量
String brand; // 品牌
double price; // 价格
String color; // 颜色
// 成员方法
public void call() {
System.out.println("打00009999888866663333333325474425477747*##36363#打电话");
}
public void sendMessage() {
System.out.println("群发短信");
}
}
2.3 对象的创建和使用
2.3.1 创建对象格式
**类名 对象名 = new 类名();**
Phone phone = new Phone();
Student stu = new Student();
2.3.2 成员变量的使用格式
**对象名.成员变量名**
注意:在定义的类中使用本类中的成员变量的时候 对象名. 可以省略 可以直接写 成员变量名
Phone phone = new Phone();
//设置phone的brand属性
phone.brand = "华为";
//打印phone的brand属性
System.out.println(phone.brand);
2.3.3 成员方法的调用格式
**对象名.方法名(参数)**
注意:在定义的类中使用本类中的成员方法的时候 对象名. 可以省略 可以直接写 方法名(参数)
Phone phone = new Phone();
//使用phone的sendMessage方法
phone.sendMessage();
3. 构造方法
3.1 定义格式
构造方法的定义格式就是在普通成员方法定义格式的基础上加上了两个强制的要求。
要求:①没有返回值类型,连void都不能写 ②方法名和类名必须相同
例如:
public class Phone {
// 成员变量
String brand; // 品牌
double price; // 价格
String color; // 颜色
public Phone(){
//这是一个无参构造
}
public Phone(String color,double price,String brand){
//这是一个有参构造
this.color = color;
this.price = price;
this.brand = brand;
}
}
3.2 调用格式
**new 类名(参数);**
例如:
Phone p = new Phone();
Phone p2 = new Phone("原谅绿",2999.9,"华为");
3.3 构造方法的作用
- 创建对象
- 在创建对象的时候更便捷的对成员变量进行赋值
- 对类中的成员变量进行默认初始化
3.4 注意事项
**如果一个类中没有写构造方法,编译器会默认送我们一个无参构造方法,但是如果自己写了,编译器就不会送了。这种情况下建议自己再加一个无参构造**