目录
- 创建类
- 类的属性
- 类的方法
- 实例
- 分析
- 创建对象
- 创建Test类测试
- 分析
创建类
类的属性
属性用于定义该类或该类对象包含的数据或者说静态特征。属性作用范围是整个类体。
- 属性定义格式:
[修饰符] 属性类型 属性名 = [默认值] ;
类的方法
方法用于定义该类或该类实例的行为特征和功能实现。方法是类和对象行为特征的抽象。方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。
- 方法定义格式:
[修饰符] 方法返回值类型 方法名(形参列表) {
// n条语句
}
实例
public class Person {
int age ;//年龄
String name;//姓名
double height;//身高
double weight;//体重
//动词--->方法
//吃饭
public void eat(){
int num = 10;//局部变量:放在方法中
System.out.println("我喜欢吃饭");
}
//睡觉:
public void sleep(String address){
System.out.println("我在"+address+"睡觉");
}
//自我介绍:
public String introduce(){
return "我的名字是:"+name+",我的年龄是:"+age+",我的身高是:"+height+",我的体重是:"+weight;
}
}
分析
这是一个简单的Java类,名为Person
,代表一个人。这个类包含了四个成员变量(属性):age
(年龄)、name
(姓名)、height
(身高)和weight
(体重)。类中还定义了三个方法:eat()
、sleep()
和introduce()
,分别代表“吃饭”、“睡觉”和“自我介绍”的行为。
以下是关于这个类的简要分析:
-
属性:
age
: 用于存储人的年龄。name
: 用于存储人的姓名。height
: 用于存储人的身高。weight
: 用于存储人的体重。
-
方法:
eat()
: 一个没有参数的方法,输出“我喜欢吃饭”。sleep(String address)
: 一个带有一个字符串参数的方法,输出“我在”加上传入的地址“睡觉”。introduce()
: 返回一个字符串,描述人的姓名、年龄、身高和体重。
-
变量:
int num = 10;
: 这是一个局部变量,只在eat()
方法内部有效。
-
输出:
- 当调用
eat()
、sleep()
和introduce()
方法时,程序会输出相应的信息。例如,调用eat()
会输出“我喜欢吃饭”,调用sleep(address)
会输出“我在”加上传入的地址“睡觉”,调用introduce()
会输出人的详细信息。
- 当调用
创建对象
创建Test类测试
public class Test01 {//测试类
//这是一个main方法,是程序的入口:
public static void main(String[] args) {
//创建一个人类的具体的对象/实例:
//创建一个对象,对象的名字叫:zs
//Person 属于 引用数据类型
//第一次加载类的时候,会进行类的加载,初始化创建对象的时候,对象的属性没有给赋值,有默认的初始化的值。
Person zs = new Person();
zs.name = "张三";
zs.age = 19;
zs.height = 166.5;
zs.weight = 70.4;
//再创建一个对象:
//再次创建类的时候,就不会进行类的加载了,类的加载只在第一次需要的时候加载一次
Person ls = new Person();
ls.name = "李四";
ls.age = 18;
ls.height = 180.6;
ls.weight = 130.5;
//对属性值进行读取:
System.out.println(zs.name);
System.out.println(ls.age);
//对方法进行操作:
//不同的对象,属性有自己的特有的值,但是方法都是调用类中通用的方法。
//属性:各个对象的属性是独立的,
//方法:各个对象的方法是共享的。
zs.eat();
ls.eat();
zs.sleep("教室");
/*String str = zs.introduce();
System.out.println(str);*/
System.out.println(zs.introduce());
}
}
分析
这段代码是一个简单的Java程序,用于演示对象的创建、属性的设置、方法的调用等基本概念。以下是代码的简要分析:
-
类的定义:
Test01
是测试类,包含一个main
方法,这是程序的入口点。
-
对象的创建:
- 通过
Person zs = new Person();
和Person ls = new Person();
创建了两个Person
类的对象,分别命名为zs
和ls
。
- 通过
-
属性的设置:
- 使用点运算符为对象的属性赋值,例如
zs.name = "张三";
。
- 使用点运算符为对象的属性赋值,例如
-
方法的调用:
- 调用对象的
eat()
方法,该方法在Person
类中定义。 - 调用对象的
sleep()
方法,并传递一个字符串参数 “教室”。
- 调用对象的
-
属性的读取:
- 使用
System.out.println()
打印对象的属性值。
- 使用
-
方法的共享:
- 所有对象共享同一个
eat()
方法,因为它是类中的静态方法。
- 所有对象共享同一个
-
方法的独立性:
- 每个对象都有自己独立的属性值,但共享相同的方法。例如,虽然
zs
和ls
的name
和age
属性值不同,但他们都调用了同一个eat()
方法。
- 每个对象都有自己独立的属性值,但共享相同的方法。例如,虽然
-
部分注释:
- 代码中的注释有助于解释代码的工作原理,但被注释掉的代码(例如
String str = zs.introduce(); System.out.println(str);
)不会执行。
- 代码中的注释有助于解释代码的工作原理,但被注释掉的代码(例如
-
输出:
- 程序将打印出对象
zs
和ls
的属性值,以及他们各自调用的方法(eat()
和sleep()
)的输出。
- 程序将打印出对象
-
加载和初始化:
- 当第一次创建类的新对象时,类会被加载并初始化。后续创建该类的其他对象时,类不再重新加载和初始化。这通过注释进行了说明。
-
注意点:
在提供的代码中,我们没有看到完整的Person
类定义,所以我们无法分析它的所有属性和方法。但根据提供的代码,我们只能假设Person
类中定义了相应的属性和方法。