对象和类
身边的对象
|-现实世界中所有事物都是对象
|-举例:
|- 人、车、猫、食物等等
什么是对象的属性和方法
|- 每个对象的属性(状态)可能不一样,例如张三的名字、身高、体重、出身信息和李四的不一样,而李四的这些信息又和王五的不一样。
|- 每个对象和方法(行为)可能不一样,例如收银员的行为动作是负责收款和打印账单,而顾客的行为动作是购物。
|- 你的求职简历上有什么?名字,性别,年龄,籍贯;你的兴趣爱好是什么?打球,瑜伽,太极,编程,game等等
封装
|- 封装就是将对象的属性和方法封在一起,以新的完整的形式呈现。
类
类是具有相同属性和共同特征的一组对象的集合。
类定义了对象将有的特征(属性)和行为(方法)
类的属性:对象或实体所拥有的特征在类中表示时称为类的属性。例如顾客类的身高、年龄、体重等都是类的属性。
类的方法:对象执行的操作称为类的方法。例如顾客类的对象都具有的行为是购物,那么购物就是顾客类的方法。
对象和类的区别
|- 对象是类的实例,类是对象的类型。
类 |
对象 |
人 |
校长,员工,学生 |
车 |
公共汽车,小轿车 |
动物 |
猫,狗,狐狸 |
类是对象的模板,对象是类的实体。
Java类模板
public class <类名> {
// 定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
......
属性n的类型 属性n;
// 定义方法部分
方法1;
方法2;
......
方法n;
}
如何定义类
|- 定义类名
编写类的最外层框架
public class <类名> { // 程序体 } |
|-编写类的属性
|-编写类的方法
|- 问题:编写学生类,定义学生的属性和方法。
public class Student { // 使用class定义类名
// 定义学生的属性
private String name; // 学生姓名
private int age; // 学生年龄
private char sex; // 学生性别
// 重写toString方法
public String toString() { // 显示学生信息
return name + " 性别" + sex + " 年龄:" + age;
}
}
如何创建和使用对象
由类生成对象就是类的实例化过程。
创建对象的语法如下:
类名 对象名 = new 类名();
例如创建Student类的对象:Student zhangsan = newStudent();
在java中引用对象的属性和方法是用“.”操作符来完成,表示调用。
语法如下:
对象名.属性;
对象名.方法名();
例如,创建对象之后我们就可以给对象的属性赋值了。具体代码如下:
zhangsan.name =“张三”; // 赋值
zhangsan.toString();//调用类的方法
public class TestStudent {
public static void main(String[] args) {
Student obj = new Student(); // 用new实例化对象
// 打印为赋值操作之前
System.out.println("初始化变量之前");
System.out.println(obj.toString());
obj.name = "zhangsan"; // 引用name属性
obj.sex = 'F'; // 引用sex属性
obj.age = 20; // 引用age属性
System.out.println();
// 打印赋值操作之后
System.out.println("初始化变量之后");
System.out.println(obj);// 对象会自动调用toString方法。特例。
}
}
类的方法
|- 类的方法是一个功能模块,用来做一件事。
|- 如何定义类的方法
|- 语法如下:
访问修饰符 返回值的类型 方法名() { // 方法名也是一个标识符 // 方法的主体 } |
|- 举例:
返回值 |
代码 |
有 |
public String toString() { return "大家好"; } |
无 |
public void method() { System.out.println("大家好"); } |
方法调用
|- 语法:
实例对象.方法名();
|- 问题:编写一个电动狗类,它具有的属性是颜色为黄色,它具有的方法是跑、叫、显示自身的颜色。
public class Dog {
String color = "黄色";
public String run() {
return " it is running!";
}
public String bark() {
return " it is barking";
}
public String getColor() {
return color;
}
public String showDog() {
// 方法中还可以调用方法
//System.out.println(wangCai.bark());
//System.out.println(wangCai.run());
return "this is a " + getColor()+ " dog ";
}
}
public class ObjDog { // 测试类
public static void main(String[] args) {
Dog wangCai = new Dog(); // 用new实例化对象
wangCai.color = "yellow"; // 修改默认值
System.out.println(wangCai.showDog());
System.out.println(wangCai.bark());
System.out.println(wangCai.run());
}
}