Java程序设计:必实验2 类的高级应用

(1)编写一个Athlete类。该类包含三个成员变量name、sport和medal,分别代表一个运动员的姓名、最擅长的运动项目名称和在2023年亚运会获得的奖牌数量。在该类中重写Object类的toString方法,当调用它重写的toString方法时,输出这个运动员的姓名、运动项目和奖牌数量。

package 必实验2;
//定义Athlete类
class Athlete
{String name; //运动员的姓名String sport;//运动项目int medal;   //金牌数量//含参构造函数,给成员变量赋值public Athlete(String a,String b,int c) {name = a;sport = b;medal = c;}//重写Object类的toString方法public String toString(){String result;result = "姓名:"+name+"\n"+"运动项目:"+sport+"\n"+"金牌数量:"+medal;return result;}
}
public class task1 {public static void main(String[] args) {//创建一个Athlete的对象athleteAthlete athlete;athlete = new Athlete("王楚钦","乒乓球",4);System.out.println(athlete.toString());}
}

(2)在一个包中定义一个默认访问权限控制的类DefaultClass,然后在该包以及另一个包中分别定义类来测试DefaultClass类中的private, default, protected和public数据成员的访问控制能力。

总结:

同一个包中的类,无需import即可访问DefaultClass类,且可以访问DefaultClass类中public和protected成员变量以及public成员方法,但是不可以访问另一个包中的默认访问权限的类。

package task2;class DefaultClass {//分别定义private,protected,public三个成员变量private int private_id;protected String protected_phoneNumber;public String public_gender;public DefaultClass(int a,String b,String c){private_id = a;protected_phoneNumber = b;public_gender = c;}//展示成员变量的各个值public void Display(){System.out.println("private_id:"+private_id);System.out.println("protected_phoneNumber:"+protected_phoneNumber);System.out.println("public_gender:"+public_gender);}
}
package task2;public class Test_DefaultClass {public static void main(String[] args) {//声明defaultClass对象DefaultClass  defaultClass = new DefaultClass(100,"33045364", "男");//测试private实例,不可访问//System.out.printfln("defaultClass.private_id:"+defaultClass.private_id ); //测试protected实例,可访问System.out.println("defaultClass.protected_phoneNumber:"+defaultClass.protected_phoneNumber );  //测试public实例,可访问System.out.println("defaultClass.public_gender:"+defaultClass.public_gender );//测试public方法,可访问defaultClass.Display();}
}
package 必实验2;import task2.DefaultClass;public class Test_task2 {static public void main(String []args) {//声明defaultClass对象,不可创建DefaultClass p2 = new DefaultClass(100,"33045364", "男");//测试private实例,不可访问//System.out.printfln("p2.private_id:"+p2.private_id ); //测试protected实例,不可访问//System.out.println("p2.protected_phoneNumber:"+p2.protected_phoneNumber );  //测试public实例,不可访问//System.out.println("p2.public_gender:"+p2.public_gender );//测试public方法,不可访问//p2.Display();}
}

(3)在一个包中定义一个public访问权限控制的类PublicClass,然后在该包以及另一个包中分别定义类来测试PublicClass类中的private, default, protected和public数据成员的访问控制能力。

总结:

同一个包中的类,无需import即可访问PublicClass类,且可以访问PublicClass类中public和protected成员变量以及public成员方法;不同包中的类,需要import PublicClass所在的包才能访问,且可以访问PublicClass类中public成员变量以及public成员方法,但是不可以访问protected成员变量了。

package task3;public class PublicClass {//分别定义private,protected,public三个成员变量private int private_a;protected int protected_b;public int public_c;public PublicClass(int a,int b,int c){private_a = a;protected_b = b;public_c = c;}//展示成员变量的各个值public void Display(){System.out.println("private_a:"+private_a);System.out.println("protected_b:"+protected_b);System.out.println("public_c:"+public_c);}
}
package task3;public class Test_PublicClass {static public void main(String []args) {//声明PublicClass对象PublicClass  publicClass = new PublicClass(1,2,3);//测试private实例,不可访问//System.out.printfln("publicClass.private_a:"+publicClass.private_a ); //测试protected实例,可访问System.out.println("publicClass.protected_b:"+publicClass.protected_b );  //测试public实例,可访问System.out.println("publicClass.public_c:"+publicClass.public_c );//测试public方法,可访问publicClass.Display();}
}
package 必实验2;import task3.PublicClass;public class Test_task3 {static public void main(String []args) {//声明PublicClass对象PublicClass  p3 = new PublicClass(1,2,3);//测试private实例,不可访问//System.out.printfln("p3.private_a:"+p3.private_a ); //测试protected实例,不可访问//System.out.println("p3.protected_b:"+p3.protected_b );  //测试public实例,可访问System.out.println("p3.public_c:"+p3.public_c );//测试public方法,可访问p3.Display();}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

适用于Mac电脑的 iOS 设备管理器选 iTunes 还是iMazing?

mac上有没有好用的ios设备管理器? 因为工作的关系,一共使用3部苹果手机,资料很杂很多也很乱,想整理也不知道从何下手,有人推荐【iTunes】,有人推荐【iMazing】,该如何选择呢? 一、i…

架构师 - 架构师是做什么的 - 学习总结

架构师核心定义 架构师是什么 架构师是业务和技术之间的桥梁 架构师的核心职责是消除不确定性、和降低复杂性 架构设计环 架构师的三个核心能力 架构师的三个关键思维 架构师主要职责 架构设计 Vs 方案设计 架构设计前期 主要任务 澄清不确定性 明确利益干系人的诉求消除冲…

2024.1.13力扣每日一题——构造限制重复的字符串

2024.1.13 题目来源我的题解方法一 计数模拟 题目来源 力扣每日一题;题序:2182 我的题解 方法一 计数模拟 因为字符串s由小写字母构成,因此使用一个int[26]的数组保存每个字符的数量,然后从最大的字符开始构造结果字符串sb&…

段码液晶显示屏模块 背光控制的坑

玩的这个模块做测试,它的引脚有以下的介绍,商家提供了些资料,但没原理图。 led引脚想当然的接个IO输出口,但怎么输出0或1都不能控制背光 然后仔细研究了上面的电路,才发现LED是直接连接着VCC的 总结是这个背光要控制的…

曲线生成 | 图解贝塞尔曲线生成原理(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 贝塞尔曲线的应用2 图解贝塞尔曲线3 贝塞尔曲线的性质4 算法仿真4.1 ROS C仿真4.2 Python仿真4.3 Matlab仿真 0 专栏介绍 🔥附C/Python/Matlab全套代码🔥课程设计、毕业设计、创新竞赛必备!详细介绍全局规划(图搜索、采样法…

示例:php将文本内容写入一个文件(面向过程写法)

一、封装2个函数,读写文件 /*** desc 读取文件内容* param string $filename* return array*/ private function readContent(string $filename): array {$text file_get_contents($filename);if (!$text) {return [];}$result json_decode($text,true);return…

全包了 功能超级强大的linux管理平台1panel部署教程

目录 先看下效果 1.1panel是什么 2.安装教程 2.1下载安装包 2.2解压 2.3安装 3.查看 3.1初始化并登录 3.2容器管理页面,可以启动 重启 创建容器 ​编辑 3.3应用商店 意见安装常用应用 ​编辑 3.4可视化任务管理 3.5网站管理 3.6数据库管理 ​编辑 3…

关于使用CryPtopp库进行RSA签名与验签的一些说明

项目中使用到了CryPtopp库进行RSA签名与验签,但是在使用过程中反复提示无效的数字签名。在网上反复查阅相关资料无果,最后在CryPtopp官网找到相关资料。 再利用CryPtopp中的SignerFilter这个函数进行签名时,最后有一个变量bool putMessage&am…

iOS UIViewContentMode 不同效果图文对比

一. iOS提供了的ContentMode有如下几种 其中默认mode是UIViewContentModeScaleToFill typedef NS_ENUM(NSInteger, UIViewContentMode) {UIViewContentModeScaleToFill,UIViewContentModeScaleAspectFit, // contents scaled to fit with fixed aspect. remainder is tr…

嵌入式培训机构四个月实训课程笔记(完整版)-C++和QT编程第二天-C++类与对象练习题(物联技术666)

网盘链接:https://pan.baidu.com/s/1TKdHdeuDI8XPaakepvSLZQ?pwd=1688 提取码:1688 设计一个学生类,包括学号、姓名、成绩,并设计接口函数用来输出这些学生数据并计算平均分。并编写main函数进行测试: 输出如: 学号 姓名 成绩 1 张XX 98 2 王XX 90 3 XXX 89 平均…

Python教程44:海龟画图turtle画卡塔尔世界杯吉祥物

---------------turtle源码集合--------------- Python教程42:海龟画图turtle画海绵宝宝 Python教程41:海龟画图turtle画蜡笔小新 Python教程40:使用turtle画一只杰瑞 Python教程39:使用turtle画美国队长盾牌 Python教程38&a…

公共命名空间的表示方法

公共命名空间简介 曾经有人研究如何在电脑上显示汉字,研究的结果是:把汉字全记下来,需要哪个就显示哪个。具体来讲分两步走: ①建立字符集 ②设计字体 为了实现自然语言编程,也需要分两步走: ①把所有句子…

领域驱动设计解决汉诺塔问题-文风批评(1)

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 以下文章内容纯属虚构,用来批评某些领域驱动设计文风。后续将挑一些近期的文章作为例子来批评。 ********** 领域驱动设计是革命性的创新,是划时代的洞见。领…

OpenCV-Python(40):光流算法

目标 光流的概念以及Lucas-Kanade 光流法使用函数cv2.calcOpticalFlowPyrLK() 对图像中的特征点进行跟踪 光流 介绍 由于目标对象或者摄像机的移动造成的图像对象在连续两帧图像中的移动被称为光流。它是一个2D 向量场,可以用来显示一个点从第一帧图像到第二帧图像…

CLion、IDEA设置编码为utf-8,防乱码

其实只要是JetBrains的软件都是通用的,下面以IDEA为例 1.设置项目文件编码 2.设置控制台的字符编码

bash shell基础命令

1.shell启动 shell提供了对Linux系统的交互式访问,通常在用户登录终端时启动。系统启动的shell程序取决于用户账户的配置。 /etc/passwd/文件包含了所有用户的基本信息配置, $ cat /etc/passwd root:x:0:0:root:/root:/bin/bash ...例如上述root账户信…

【外汇天眼】误入假冒Ctrl Investments无法出金,投资者:太相信网友了!

在当下这个互联网迅速发展的时代,各类交友类APP成为人们拓展社交圈的新渠道。一方面这样的交友软件在满足了用户基础的社交要求,另一方面网络世界所交往的朋友能给用户带来的神秘感和新鲜感,所以导致一部分年轻人离不开这些交友软件。然而&am…

Python 两种多值参数

有时可能需要一个函数中处理的参数的个数是不确定的,就需要使用多值参数 参数名前加上*,代表可以接收元组参数名前加上**,代表可以接收字典 代码: def demo(*args, **kwargs):print(args)print(kwargs)demo(1, 2, 3, 4, 5, nam…

python自动产生版本号,版本号+1

def get_new_version():# 读取文件内容with open("xxx.desktop", "r") as file:content file.read()# 使用正则表达式查找版本号version_match re.search(r"Version(\d\.\d\.\d)", content)# 提取当前版本号current_version version_match.gr…

使用python进行图片的格式转换

将一个文件夹下的一种格式完全转换为另外一种格式的图片: 1、将文件下的图片全部转换为png格式(转换之后输出的图片跟原始输入图像在同一个文件夹下) import os from PIL import Image json_dir r"E:\input" label_names os.lis…