一、什么是类?
- 还是举一些生活中的实际问题来解释类是啥?
- 比如:你要建一栋楼,是不是需要先将这栋楼的设计图弄出来,才能进行下一步施工
- 比如:你要造一部新手机,是不是需要先将这部手机的设计图弄出来
- 比如:你要造一辆汽车,是不是需要先将这辆汽车的设计图弄出来
- 类(设计图): 是对象共同特征的描述;
- 对象: 是真实存在的具体实例。
- 结论:在Java中,必须先设计类,才能创建对象并使用。
二、如何设计类(对象)?如何使用对象?
-
格式:
public class 类名 { 1.成员变量(代表属性,一般是名词): 比如姓名、年龄、成绩 ... 2.成员方法(代表行为,一般是动词): 比如吃饭、睡觉、跑步 ... 3.构造器(后几节再说) 4.代码块(后面再学) 5.内部类(后面再学) }
-
示例:
-
需要开发一个汽车之家
-
分析:
- 先分析成员变量有哪些?
- 汽车名称、价格
- 再分析行为有哪些?
- 汽车启动、运行
- 先分析成员变量有哪些?
-
实现思路:
-
(1) 设计汽车类
public class Car { // 属性(成员变量) String name; // 汽车名称 double price; // 汽车价格 // 行为(方法) public void start() { // 启动 } public void run() { // 运行 } }
-
(2) 得到类的对象
类名 对象名 = new 类名(); Car c = new Car();
-
(3) 使用对象
-
访问属性:
对象名.成员变量
-
访问行为:
对象名.方法名(...)
-
-
-
-
实例:
- 设计汽车类
package com.app.createobject; // 汽车之家类 public class Car { // 成员变量:汽车名称、价格 String name; double price; // 汽车行为——>方法:启动、运行 public void start() { System.out.println(name + "启动了~"); } public void run() { System.out.println("价格为" + price + "万的" + name + "跑得很快~~"); } }
- 创建汽车对象并使用
package com.app.createobject; /** 目标:学会设计对象并使用 */ public class Test1 { public static void main(String[] args) { // 创建汽车对象 Car c = new Car(); // 访问成员变量:汽车名称、价格 分别进行赋值 c.name = "宝马X3"; c.price = 47.98; // 访问成员变量:输出 System.out.println("款式一: " + c.name + "\t价格: " + c.price + "万"); // 访问行为——>调用汽车行为方法:启动、运行 c.start(); c.run(); System.out.println("---------------------------------------"); Car c2 = new Car(); c2.name = "奔驰S级"; c2.price = 178.17; System.out.println("款式二: " + c2.name + "\t价格: " + c2.price + "万"); c2.start(); c2.run(); } }
输出结果: 款式一: 宝马X3 价格: 47.98万 宝马X3启动了~ 价格为47.98万的宝马X3跑得跟快~~ --------------------------------------- 款式二: 奔驰S级 价格: 178.17万 奔驰S级启动了~ 价格为178.17万的奔驰S级跑得很快~~
总结
1、类和对象是什么?
- 类:是共同特征的描述——设计图;
- 对象:是真实存在的具体实例。
2、如何设计类?
public class 类名 {
1.成员变量(代表属性的,一般是名词);比如:姓名、年龄...
2.成员方法(代表行为的,一般是动词);比如:吃饭、睡觉...
}
3、如何创建对象?
类名 对象名 = new 类名();
4、创建对象后如何访问对象的属性?
对象名.成员变量;
对象名.成员方法(...);
三、巩固练习
-
模仿汽车类,自己定义一个学生类。
-
随便定义2个属性,2个行为。
-
并创建2个学生对象,分别访问属性和行为。
-
设计学生类
package com.app.createobject;
// 学生类
public class Student {
// 成员变量:姓名、成绩、上课状态
String name;
double score;
int status;
// 行为——>方法:判断学生成绩是否及格、学生上课状态
public void judgeScore() {
// 三元运算符判断:分数是否大于等于60,是则为true及格,否则为false不及格
System.out.println(score >= 60 ? name + "同学考试及格了!" : name + "同学考试不及格!");
}
public void classStatus() {
// 三元运算符判断:上课状态是否为1,是则为true认真听课,否则为false上课睡大觉
System.out.println(status == 1 ? name + "同学上课很认真听课~~" : name + "同学上课睡大觉开小差~~");
}
}
- 实现类
package com.app.createobject;
/**
目标:学会设计对象并使用
*/
public class StudentTest2 {
public static void main(String[] args) {
// 创建学生1
Student stu1 = new Student();
// 访问学生1的属性:姓名、成绩、上课状态,分别进行赋值
stu1.name = "关羽";
stu1.score = 99.5;
stu1.status = 1;
// 访问学生1的行为方法:判断成绩、上课状态
stu1.judgeScore();
stu1.classStatus();
System.out.println("------------------------------");
Student stu2 = new Student();
stu2.name = "张飞";
stu2.score = 59;
stu2.status = 0;
stu2.judgeScore();
stu2.classStatus();
}
}
输出结果:
关羽同学考试及格了!
关羽同学上课很认真听课~~
------------------------------
张飞同学考试不及格!
张飞同学上课睡大觉开小差~~
四、定义类的注意事项
-
类名首字母建议大写,且有意义,满足"驼峰模式"。
// 学生管理类 public class StudentManage { }
-
一个Java文件中可以定义多个class类,但只能一个类是public修饰,而且public修饰的类名必须成为代码文件名。
实际开发中建议一个文件定义一个class类。
-
成员变量的完整定义格式是:修饰符 数据类型 变量名称 = 初始化值;一般无需指定初始化值,存在默认值。
五、成员变量的默认值规则
数据类型 | 明细 | 默认值 |
---|---|---|
byte、short、char、int、long | 0 | |
基本类型 | float、double | 0.0 |
boolean | false | |
引用类型 | 类、接口、数组、String | null |
总结
1、定义类有哪些建议、注意事项?
- 类名首字母建议大写、英文、有意义,满足“驼峰模式”,不能使用关键字,满足标识符规定。
- 一个代码文件中可以定义多个类,但是只能一个类是public修饰的,public修饰的类名必须是Java代码的文件名。
- 在实际开发中建议一个文件定义一个class类
2、成员变量的格式是?有什么特点?
- 成员变量的完整格式是: 修饰符 数据类型 变量名称 = 初始化值;
- 一般无需为成员变量指定初始化值,因为存在默认值。