事物与类的对比
现实世界的一类事物:
- 属性:事物的状态信息。
- 行为:事物能够做什么。
Java中用class描述事物也是如此:
- 成员变量:对应事物的属性
- 成员方法:对应事物的行为
类的定义格式
格式解析:
- 定义类:就是定义类的成员,包括成员变量和成员方法。
- 成员变量:和以前定义变量几乎是一样的。只不过位置发生了改变。在类中,方法外。
- 成员方法:和以前定义方法几乎是一样的。只不过把static去掉。
需求
定义一个包含成员变量和成员方法的类
代码实现
package demo01; /* 定义一个类,用来模拟“学生”事物。其中就有两个组成部分: 属性(是什么): 姓名 年龄 行为(能做什么): 吃饭 睡觉 学习 对应到Java的类当中: 成员变量(属性): String name; // 姓名 int age; // 年龄 成员方法(行为): public void eat() {} // 吃饭 public void sleep() {} // 睡觉 public void study() {} // 学习 注意事项: 1. 成员变量是直接定义在类当中的,在方法外边。 2. 成员方法不要写static关键字。 */ public class Student { // 成员变量name String name; //成员变量 age int age; // 成员方法 public void eat() { System.out.println("吃饭饭!"); } public void sleep() { System.out.println("睡觉觉!"); } public void study() { System.out.println("学习!"); } }
对象的创建及其使用
通常情况下,一个类并不能直接使用,需要根据类创建一个对象,才能使用。
创建对象的步骤如下:
1. 导包:也就是指出需要使用的类,在什么位置。
- import 包名称.类名称;
注意:
- 对于和当前类属于同一个包的情况,可以省略导包语句不写。
- 对于lang包下的类可以省略导包语句不写
2. 创建,格式:
- 类名称 对象名 = new 类名称();
3. 使用,分为两种情况:
- 使用成员变量:对象名.成员变量名
- 使用成员方法:对象名.成员方法名(参数)
- (也就是,想用谁,就用对象名点儿谁。)
注意事项:
- 如果成员变量没有进行赋值,那么将会有一个默认值,规则和数组一样。
成员变量的默认值
需求
使用Student类
代码实现
public class Demo02Student { public static void main(String[] args) { // 1. 导包。 // 我需要使用的Student类,和我自己Demo02Student位于同一个包下,所以省略导包语句不写 // 2. 创建,格式: // 类名称 对象名 = new 类名称(); // 根据Student类,创建了一个名为stu的对象 Student stu = new Student(); // 3. 使用其中的成员变量,格式: // 对象名.成员变量名 System.out.println(stu.name); // null System.out.println(stu.age); // 0 System.out.println("============="); // 改变对象当中的成员变量数值内容 // 将右侧的字符串,赋值交给stu对象当中的name成员变量 stu.name = "赵丽颖"; stu.age = 18; System.out.println(stu.name); // 赵丽颖 System.out.println(stu.age); // 18 System.out.println("============="); // 4. 使用对象的成员方法,格式: // 对象名.成员方法名() stu.eat(); stu.sleep(); stu.study(); } }
执行结果
注意事项
- 使用同一个类创建对象的时候,每个对象的成员变量都是独立存在的。对象调用方法时,根据对象中方法标记(地址值),去类中寻找方法信息。这样哪怕是多个对象,方法信息只保存一份,节约内存空间。
- 引用类型作为参数/返回值,传递的是地址值。