类和对象(作业篇)

news2025/4/24 12:49:18

简简单单整理一下咱们的小作业,这次的作业比较简单,只有选择题:

public class Test{
    private float f=1.0f;
    int m=12;
    static int n=1;
    
    public static void main(String args[]){
        Test t=new Test();
    }
}

1722324690298.png
A:抛开private不说,先看变量类型,f定义的是float类型,但是所有的浮点数(这里的3.0)在java中都默认为double类型,所以在这里赋值这一步就出错了。
B:n被static修饰,是静态的,我们之前讲过:静态的成员变量是属于类的,它应该通过类名访问,而不能用this。
C:m是实例成员变量,需要通过对象来进行调用。t.m。
D:静态成员变量通过类名访问,所以D√。

public class Pvf{
    static boolean Paddy;
    public static void main(String args[]){
        System.out.println(Paddy);
    }
}

当你编译和运行下面的代码时,会出现下面选项中的哪种情况?
1722325608236.png
首先我们清楚的是,Paddy是一个静态成员变量,跟上一题一样,静态成员变量一般通过类名访问,但是这里我们的main方法写在类的内部,所以我们可以直接使用成员变量名来访问调用;
其次,这个成员变量并没有进行初始化,那么我们的系统会给予它一个默认初始化的值,再看它的变量类型是boolean,对应的初始化的值是false,因此B√。

public class Test { 
    public int aMethod(){
        static int i = 0;
        i++; 
        return i;
    } 
public static void main(String args[]){
    Test test = new Test(); 
    test.aMethod(); 
    int j = test.aMethod();
    System.out.println(j);
    } 
}

如下代码的输出结果是什么?
1722326052352.png
依然是静态变量的问题,在java中我们为什么说静态变量属于类,正是因为它被要求在类的内部创建,而方法内部创建的变量我们称作局部变量,简单说:方法内不能创建静态变量,因为局部的静态变量是不被允许的。因此D√。
修改方式:将static语句提到方法外部。

package NowCoder;
class Test {
	public static void hello() {
	    System.out.println("hello");
	}
}
public class MyApplication {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Test test=null;
		test.hello();
	}
}

阅读如下代码。 请问,对语句行 test.hello(). 描述正确的有()
1722326602845.png
还是static静态的问题,这里的hello()是一个静态的成员方法,我们在调用这个方法的时候一般使用类名调用,即Test.hello(),这里对Test进行实例化之后,哪怕表示test这个引用不指向任何对象,也对我们的调用没有影响,因为我们的方法是静态的,不需要通过对象访问。所以A√。

public static void main(String[] args){
  String s;
  System.out.println("s="+s);
}

下面代码的运行结果是()
1722327056187.png
送分题,没有初始化,编译不能通过,C√。
诶有人会问——不是说系统会给它默认初始化的值吗?注意嗷:那是成员变量的初始化规则,也就是类里面创建的变量,但是这里是main方法,创建的是局部变量,局部变量不会有默认初始化!!!!

 public class HasStatic {
	private static int x = 100;
	public static void main(String args[]) {
		HasStatic hsl = new HasStatic();
		hsl.x++;
		HasStatic hs2 = new HasStatic();
		hs2.x++;
		hsl = new HasStatic();
		hsl.x++;
		HasStatic.x--;
		System.out.println(" x=" + x);
	}
}

关于以下程序代码的说明正确的是()
1722327488736.png
本题中的静态成员变量x,属于类变量,只有一份。所有对x的操作针对的都是同一份
静态成员变量的访问需要通过类名访问,这是正确的访问方式。本题中虽然使用了对象引用访问,但是不会报错,我们不建议这样访问,但不是错误,所以,不会编译报错。
所以得出结论:本题可以正常通过编译和运行,输出结果是102,A√。

第七题
下面哪一项不是 java 类访问控制关键字
1722327770200.png
Java中的访问修饰符有3个:private,public,protected,但是当定义一个成员变量的时候,没有写这3个任意一个访问修饰符的时候,此时的权限是默认权限。因此选B。

public class Person{
	private String name = "Person";
	int age=0;
}

public class Child extends Person{
	public String grade;
	public static void main(String[] args){
		Person p = new Child();
		System.out.println(p.name);
	}
}

以下代码运行输出的是
1722327852555.png
本题主要考察继承和访问修饰限定符private,子类继承父类之后,会继承父类私有的数据,但是由于private访问修饰符的问题,子类没有办法直接反问该数据。因此选C。
想要访问private修饰的成员变量要提供一个公共方法getname():修改如下:

public class Person {
    private String name = "Person";
    int age = 0;

    // 提供一个公共方法来访问私有字段 name
    public String getName() {
        return name;
    }
}

// Child.java
public class Child extends Person {
    public String grade;

    public static void main(String[] args) {
        Person p = new Child();
        // 通过公共方法访问私有字段 name
        System.out.println(p.getName());
    }
}

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

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

相关文章

解析顺序表【数据结构】

1.线性表 线性表(linear list)是n个具有相同特性的数据元素的有线序列。线性表是一种在实际中广泛使用的数据结构,常见的线性表有:顺序表、链表、栈、队列、字符串… 线性表在逻辑上是线性结构,也就是说是连续的一条线…

HTML 字符集详解及示例

文章目录 摘要引言从ASCII到UTF-8的演变ASCII 字符集ANSI字符集ISO-8859-1字符集UTF-8字符集 示例代码运行Demo小结表格总结未来展望参考资料 摘要 本文介绍了HTML中的字符集演变历史,从最初的ASCII到现代的UTF-8,并提供了设置字符集的示例代码。文中涵…

图形编辑器基于Paper.js教程10:导入导出svg,导入导出json数据

深入了解Paper.js:实现SVG和JSON的导入导出功能 Paper.js是一款强大的矢量绘图JavaScript库,非常适合用于复杂的图形处理和交互式网页应用。本文将详细介绍如何在Paper.js项目中实现SVG和JSON格式的导入导出功能,这对于开发动态图形编辑器等…

git reset --soft(回退commit,保留add)

参考博客:git reset --soft命令的使用-CSDN博客感觉博客中举的例子不是很好。读者自行判断。举的例子的场景适合使用revert,撤销就行了。另外建议看下边这篇博客,这篇详细介绍了reset和revert,带图。但是要注意这个reset是hard的&…

mysql 内存一直增长(memory/sql/thd::main_mem_root)

mysql版本 8.0.14 发现过程 查询总内存 SELECT t.EVENT_NAME, t.CURRENT_NUMBER_OF_BYTES_USED FROM performance_schema.memory_summary_global_by_event_name t ORDER BY t.CURRENT_NUMBER_OF_BYTES_USED DESC;前: memory/sql/thd::main_mem_root 1…

第十五天啦 2024.8.1 (Spring框架)

1.从宏观上看spring框架和springboot Spring框架解决了企业级的开发的复杂性,它是一个容器框架,用于装java对象(Bean),使程序间的依赖关系交由容器统一管理,松耦合,提高了可测试性和维护效率&a…

网络原理的TCP/IP

TCP/IP协议 1)应用层 应用层和应用程序直接相关,与程序员息息相关的一层协议,应用层协议,里面描述的内容,就是写的程序,通过网络具体按照啥样的方式来进行传输,不同的应用程序,就可以用不同的应用层协议,在实际开发的过程中,需要程序员自制应用层协议 应用层协议本质上就是对…

主题巴巴WordPress主题合辑打包下载+主题巴巴SEO插件

主题巴巴WordPress主题合辑打包下载,包含博客一号、博客二号、博客X、门户一号、门户手机版、图片一号、杂志一号、自媒体一号、自媒体二号和主题巴巴SEO插件。

5行代码快速Git配置ssh

0 流程步骤 检查本地主机是否已经存在ssh key生成ssh key获取ssh key公钥内容(id_rsa.pub)复制该内容,到Github账号上添加公钥,进入Settings设置验证是否设置成功 1 代码 # 1.检查本地主机是否已经存在ssh key cd ~/.ssh ls # …

Notepad++ 安装 compare 插件

文章目录 文章介绍对比效果安装过程参考链接 文章介绍 compare 插件用于对比文本差异 对比效果 安装过程 搜索compare插件 参考链接 添加链接描述

权威认可!聚铭网络再度入选中国信通院《中国数据库产业图谱(2024年)》

7月16日,由中国信息通信研究院、中国通信标准化协会指导,中国通信标准化协会大数据技术标准推进委员会(CCSA TC601)、InfoQ联合主办的“2024可信数据库发展大会”在京召开。会上,正式发布《中国数据库产业图谱&#xf…

《电子技术》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《电子技术》是不是核心期刊? 答:不是,是知网收录的第一批认定学术期刊。 问:《电子技术》级别? 答:省级。主管单位:上海科学技术协会 主办单位:上海…

基于N32L406+FlashDB(键值数据库 时序数据库)+mdk5 移植教程

这里首先感谢作者的开源: FlashDB: 一款支持 KV 数据和时序数据的超轻量级数据库 (gitee.com) 1.FlashDB简介 一款超轻量级的嵌入式数据库,专注于提供嵌入式产品的数据存储方案。FlashDB 不仅支持传统的基于文件系统的数据库模式,而且结合了…

【YOLOv8】一文全解+亮点介绍+训练教程+独家魔改优化技巧

前言 Hello,大家好,我是cv君,最近开始在空闲之余,经常更新文章啦!除目标检测、分类、分隔、姿态估计等任务外,还会涵盖图像增强领域,如超分辨率、画质增强、降噪、夜视增强、去雾去雨、ISP、海…

o(∩_∩)o设置代理访问博客(五)o(∩_∩)o --使用BeeWare打包应用

背景: 最近了解了一个新的打包框架BeeWare,据说他支持的平台要比nuitka更多。利用之前访问博客的脚本,来尝试一下打包windows应用程序。 BeeWare 从零开始 环境:python -m pip install briefcase 使用pycharm新建了一个名为bee…

【HTML入门】第二十一课 - 【实战】做一个简单的数据表格

这一小节,我们继续练习纯HTML,开发一个简单的数据表格吧。就像这样: 目录 1 设计需求分析 2 用到的标签 3 实战代码 1 设计需求分析 做之前,我们仍然是分析一下这张图,以便更好的更快的开发出来。 分2个大部分第一个…

掌控板(为Python编程学习而生)文章目录+入门教程 简介

前言 文章目录 掌控入门系列教程目录 【Mind】掌控板入门教程01 “秀”出我创意 【Mind】掌控板入门教程02 趣味相框 【Mind】掌控板入门教程03 节日的祝福【Mind】掌控板入门教程04 迷你动画片【Mind】掌控板入门教程05 心情灯【Mind】掌控板入门教程06 多彩呼吸灯【Mind】掌…

word预览方式---iframe,Microsoft Office Online、xDoc、Google Docs

提示:word预览方式—iframe 文章目录 [TOC](文章目录) 前言一、Microsoft Office Online二、xDoc三、Google Docs四、预览组件总结 前言 使用vue/cli脚手架vue create创建 一、Microsoft Office Online https://view.officeapps.live.com/op/view.aspx?src二、xDo…

java的命令执行漏洞揭秘

0x01 前言 在Java中可用于执行系统命令常见的方式有两种,API为:java.lang.Runtime、java.lang.ProcessBuilder 0x02 java.lang.Runtime GetMapping("/runtime/exec")public String CommandExec(String cmd) {Runtime run Runtime.getRunti…

关于#define的使用方法总结

文章目录 #define 预处理指令一、#define宏定义二、查看预处理文件三、#define 的使用方法四、C语言宏中“#”和“##”的用法五、常见的宏定义总结六、常考题目 #define 预处理指令 #define 是 C 和 C 编程语言中的预处理指令,用于定义宏(macro&#xf…