云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 第3章-面向对象(上)-补充案例

第3章-面向对象(上)-补充案例

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 0:19:35

第3章-面向对象(上)-补充案例

当多个对象存储的数据相同时,可以使用静态变量的方式存储。例如,有一个Student类具有name、className属性,请根据该类创建出三个Student对象,并将这些对象的className值都设置为“三年级二班”。

4、 设计思路(实现原理)

1) 定义Student类,并在类中定义name和className属性。

2) 编写测试类Example08,在main()方法中创建三个学生对象,并分别为这些对象的name和

className属性赋值,然后输出这些对象的name和className值。 3) 对Student类进行修改,将className定义为静态变量。

4) 修改测试类,在main()方法中使用Student.className = “三年级二班”语句为静态变量

className进行赋值,然后输出这些对象的name和className值。

为了更好地理解Student类中静态变量className和Student实例对象的关系,下面通过一个图例进行演示,如图3-11所示:

Student{className三年级二班Student实例对象{names1names2names3

图3-11 静态变量与实例对象的关系

二、案例实现

1、定义Student类,代码如下所示:

class Student{ }

String name; String className;

2、定义Example08类,代码如下所示:

public class Example08 {

public static void main(String[] args) {

Student s3 = new Student(); s3.name = \王五\

s3.className = \三年级二班\Student s1 = new Student(); s1.name = \张三\

s1.className = \三年级二班\

Student s2 = new Student(); s2.name = \李四\

s2.className = \三年级二班\

13 / 25

第3章-面向对象(上)-补充案例

System.out.println(\我的名字是\来自\

}

}

System.out.println(\我的名字是\来自\System.out.println(\我的名字是\来自\

运行结果如图3-12所示。

图3-12 运行结果

3、对Student类进行修改,代码如下所示:

class Student { }

String name;

static String className;

4、对Example08类进行修改,代码如下所示:

public class Example08 { }

}

System.out.println(\我的名字是\来自\System.out.println(\我的名字是\来自\System.out.println(\我的名字是\来自\public static void main(String[] args) {

Student.className = \三年级二班\Student s1 = new Student(); s1.name = \张三\

Student s2 = new Student(); s2.name = \李四\

Student s3 = new Student(); s3.name = \王五\

运行结果如图3-13所示。

图3-13 运行结果

14 / 25

第3章-面向对象(上)-补充案例

三、案例总结

1、本案例中,三个Student对象的className属性值均为“三年级二班”,对于这样的相同数据,没有必要在每个对象中都开辟一块空间存储,完全可以在内存中只用一块空间存储,并被一个类的所有实例对象所共享。在Java中提供了一个static关键字,使用static关键字修饰的成员变量称为静态变量,静态变量能被该类所有实例对象共享。

2、静态变量可以使用“类名.静态方法名”的方式访问,也可以通过“对象引用变量.静态方法名”的方式访问,例如本例中的静态变量className,通过Student.className或者s2.className这两种方式访问都是可以的,不过更推荐使用前一种方式。

3、思考一下:定义一个Person类,在类中定义两个String类型的成员变量name和nationality(国籍),变量nationality使用static关键字修饰为静态变量,其值为“中国”。

定义Example09类,在类的main()方法中创建Person类的两个实例对象,并打印出这两个对象的姓名和国籍。 (1)定义Person类,代码如下所示:

class Person { }

String name;

static String nationality = \中国\

(2)定义Example09类,代码如下所示:

public class Example09{ }

public static void main(String[] args) { }

Person lily = new Person(); lily.name = \丽丽\

Person lucy = new Person(); lucy.name = \露西\

System.out.println(lily.name + \的国籍是\System.out.println(lucy.name + \的国籍是\

运行结果如图3-14所示。

图3-14 运行结果

案例3-9 静态方法中访问类的成员 一、案例描述

1、 考核知识点

15 / 25

第3章-面向对象(上)-补充案例

编号:

名称:静态方法

2、 练习目标

? 了解在静态方法中只能访问类的静态成员,而不能访问非静态成员。

3、 需求分析

在程序中经常会调用方法,但静态方法之间、静态方法和非静态方法之间,它们是否能够互相调用呢?请编写一个测试类,在类中定义若干个静态方法和非静态方法,通过方法之间的相互调用,演示静态方法和非静态方法的调用情况。

4、 设计思路(实现原理)

1)编写Example10类,在类中定义两个静态方法staticMethod1()、staticMethod2(),两个非静态方法nonStaticMethod1()、nonStaticMethod2()

2)在Example10类中,针对定义的四个方法进行互相调用,观察调用情况。

二、案例实现

1、定义Example10类,在类中定义上述的四个方法和一个main()方法,代码如下所示:

public class Example10{ }

static void staticMethod1() { }

static void staticMethod2() { }

void nonStaticMethod1() { }

void nonStaticMethod2() { }

public static void main(String[] args) { }

System.out.println(\非静态方法2\System.out.println(\非静态方法1\System.out.println(\静态方法2\System.out.println(\静态方法1\

2、对静态方法staticMethod1()进行修改,在方法中访问静态方法staticMethod2()。在main()方法中调用静态方法staticMethod1(),代码如下所示:

public class Example10{ static void staticMethod1() {

}

static void staticMethod2() { }

void nonStaticMethod1() {

System.out.println(\非静态方法1\System.out.println(\静态方法2\System.out.println(\静态方法1\staticMethod2();

16 / 25

搜索更多关于: 第3章-面向对象(上)-补充案例 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

第3章-面向对象(上)-补充案例 当多个对象存储的数据相同时,可以使用静态变量的方式存储。例如,有一个Student类具有name、className属性,请根据该类创建出三个Student对象,并将这些对象的className值都设置为“三年级二班”。 4、 设计思路(实现原理) 1) 定义Student类,并在类中定义name和className属性。 2) 编写测试类Example08,在main()方法中创建三个学生对象,并分别为这些对象的name和className属性赋值,然后输出这些对象的name和className值。 3) 对Student类进行修改,将className定义为静态变量。 4) 修改测试类,在main()方法中使用Student.className = “

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com