创建类、创建对象和使用对象
1) Java 是面向对象的语言
a) 在面向对象的程序设计中,类是程序的基本单元。我们的程序就是由很多的类组成的。
b) 所有Java程序都以类class为组织单元
c) 关键字class用于创建类
d) 我们一直以来所写的程序的结构:
public class HelloWorld {
}
e) 我们以前写的每一个JAVA文件就是一个类。
2) Java类模板
a) 类将现实世界中的概念模拟到计算机程序中
b) 要在Java中创建一个类,需要一个class,一个类名和一个表示程序体的大括号。
1. class是创建类的关键字,在class的前面有一个public,不要漏写。
2. class的后面就是类的名字。
3. 在大括号中就是类的主体部分。
public class 类名 {
//定义属性部分
属性1的类型 属性1;
属性2的类型 属性2;
…
属性n的类型 属性n;
//定义方法部分
方法1;
方法2;
…
方法m;
}
注意:类里面只能定义属性和方法,通常属性定义在类的开始部分,方法定义在属性的下面。只要不是定义属性的代码必须写在方法里。
3) 定义类
a) 类命名规则
1. 不能使用Java关键字
2. 不能用数字作为类名开头
3. 不能包含除字母、数字、“_”及“$”以外的其他字符
a) 如:空格或“.”号
4. 类名是一个名词,采用大小写混合的方式,每个单词的首字母大写
5. 应该使自己的类名简洁,能描述类的意义。
6. 要用完整的单词,避免缩写。
7. 类名要和文件名相同。
b) 定义一个类的步骤
1. 定义类名:编写类的最外层框架
public class 类名{
//程序体
}
2. 编写类的属性
a) 在类中的属性和下面要讲的方法统称为类成员。
b) 类的属性就是类的数据成员,我们在类的主体中定义变量来描述类所具有的特征(属性),这些变量也叫成员变量。
3. 编写类的方法
a) 类的方法描述了类具有的行为。是类的方法成员,也叫成员方法。
b) 成员方法是独立完成某个功能的单元模块。
c) 示例:
1. 在不同的高校(襄樊学院,武汉大学等),尽管都有很多不同的地方,但还是有许多相同或相似的数据,如学校有名称、教学楼数量、教师数量等。
2. 用类的思想输出学校信息
d) 代码:创建“学校”类
public class School {
// 定义学校的属性
String schoolName; // 学校的名称
int classNum; // 教学楼的数目
int teacherNum; // 教师的数目
// 定义学校的方法
public void showMessage() {
System.out.println(schoolName + "\t" + "拥有:" +
classNum + "栋教学楼\t" + teacherNum + "位教师");
}
}
4) 创建和使用对象
a) 演示使用Eclipse创建类
1. 不带main()方法(入口方法)的类
2. 带main()方法(入口方法)的类
b) 使用对象的步骤:
1. 使用new创建类的一个对象
2. 语法:
类名 对象名 = new 类名();
示例:
School center = new School();
说明:一个类可以创建任意多个对象。
3. 使用对象:使用“.”操作符进行以下操作
a) 给类的属性赋值:对象名.属性
b) 调用类的方法:对象名.方法名()
center.schoolName = "襄樊学院"; //给属性赋值
center. showMessage (); //调用类的方法,该方法中的操作将被执行
c) 演示:创建“襄樊学院”对象
1. 在另一个类里调用刚才创建的“学校”类
public class InitialSchool {
public static void main(String[] args) {
School center = new School(); // 创建 School对象
System.out.println("***初始化成员变量前***\n");
center.showMessage();
center.schoolName = "襄樊学院";
center.classNum = 100;
center.teacherNum = 2000;
System.out.println("***初始化成员变量后***\n");
center.showMessage();
}
}
d) 在代码中,我们使用“.”操作符来调用showMessage ()方法。
e) 我们在为对象的属性赋值前使用了一次center,结果仍然输出了一些信息。这是为什么呢?
1. 在定义类时,如果没有给属性赋初始值,JAVA会给它一个默认值。
f) 在我们使用“.”操作符时,我们可以发现Eclipse弹出了一个下拉菜单,列出了这个对象所有的属性和方法,我们只需要选择我们想要用的就可以了。
5) 案例
a) 编写学生类,输出学生相关信息
1. 分析:
1) 先确定类的名称:Student
2) 分析这个类需要描述的属性有哪些:
姓名
年龄
兴趣
班组编号
3) 确定以上四个属性的数据类型分别是什么:
姓名:字符串
年龄:整数
兴趣:字符串
班组编号:字符串
4) 在Eclipse中创建一个类,类名是:Student
5) 在类中编写代码,实现分析出的四个属性
6) 在类中添加一个方法:public void showMessage(){},在这个方法的大括号中添加用于输出信息的代码即可完成类的编写
2. 代码示例:
public class Student {
String name; // 姓名
int age; // 年龄
String hobby; // 兴趣
String classNo; // 班级编号
public void showMessage() {
System.out.println(name + "\n年龄: " + age + "\n爱好: "
+ hobby + " \n就读于" + classNo);
}
}
b) 编写教师类,输出教师相关信息
1. 分析:
1) 先确定类的名称:Teacher
2) 分析这个类需要描述的属性有哪些:
姓名
教授课程
专业方向
教龄
3) 确定以上四个属性的数据类型分别是什么:
姓名:字符串
教授课程:字符串
专业方向:字符串
教龄:整数
4) 在Eclipse中创建一个类,类名是:Teacher
5) 在类中编写代码,实现分析出的四个属性
6) 在类中添加一个方法:public void showMessage(){},在这个方法的大括号中添加用于输出信息的代码即可完成类的编写
2. 代码示例:
public class Teacher {
String name; // 姓名
String course; // 教授课程
String dep; // 专业方向
int teaYear; // 教龄
public void showMessage() {
System.out.println(name + "\n教授课程:" + course + "\n
主攻方向: " + dep + "\n教龄:" + teaYear);
}
}
6) 小结
a) 编写一个音乐类,并编写测试类显示音乐信息
b) 代码示例:
public class Music {
String name;//音乐名称
String type;//音乐类型
//显示对象属性的方法
public void showMessage() {
System.out.println("音乐名称:" + name + "\t音乐类型:" + type);
}
//入口方法,用于创建并使用对象
public static void main(String[] args) {
Music m=new Music();
m.name="双截棍";
m.type="流行音乐";
m.showMessage();
}
}
c) 编写一个手机类,并编写测试类显示手机信息
d) 代码示例:
public class Phone {
String pp;// 手机品牌
String type;// 手机型号
// 显示对象属性的方法
public void showMessage() {
System.out.println("手机品牌是:" + pp + "\t手机型号是:" + type);
}
// 入口方法,用于创建并使用对象
public static void main(String[] args) {
Phone p = new Phone();
p.pp = "Apple";
p.type = "A101";
p.showMessage();
}
}
7) 面向对象的优点
a) 便于程序模拟现实世界中的实体
1. 用“类”表示实体的特征和行为
b) 隐藏细节
1. 每一个类完成一个相对独立的功能。另一个类在使用它时,也不必知道它究竟如何实现。只要知道它拥有的功能就可以了。
2. 对象的行为和属性被封装在类中,外界通过调用类的方法来获得,不需关注内部细节如何实现。
3. 我们用一个JAVA文件存储一个JAVA类。
c) 代码重用
1. 一个类可以创建多个对象
说明:优点很多,希望大家在以后的使用中慢慢体会。
知识点4:总结数据类型[5分钟]
1) 数据类型总结
a) 基本数据类型
1. byte
2. char
3. short
4. int
5. long
6. float
7. double
8. boolean
b) 引用数据类型
1. String
2. 使用class定义的类型
a) Student
b) Teacher
c) School
2) 数据类型使用区别
a) 基本数据类型
1. 没有方法
2. 赋值不用new关键字
3. 使用时直接引用即可
b) 引用数据类型
1. 具有方法
2. 创建对象时要使用new关键字
3. 使用时要用“.”操作符引用其属性或方法
|
|