【java学习】对象的产生(18)

news2024/9/28 9:21:06

文章目录

  • 1. 初始化赋值
  • 2. 匿名对象
  • 3. 练习
    • 3.1. 习题一
    • 3.2. 习题二
  • 4. 总结


1. 初始化赋值

当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的变量类型都是引用类型,如上节的 Person 和前面讲过的数组。

成员变量类型初始值
byte0
short0
int0
long0L
float0.0F
double0.0D
char‘\u0000’( 表示为空 )
booleanfalse
引用类型null

举例说明

创建一个学生类:

package default_package;

/**
 * 学生类
 * @author 14532
 */

public class Student {
	
	public String name;//姓名
	public int age;//年龄
	public String course;//课程
	public String interest;//兴趣
	
	/**
	 * 显示学生个人信息
	 */
	public void showInfo() {
		System.out.println("姓名:" + name);
		System.out.println("年龄:" + age);
		System.out.println("姓名:" + course);
		System.out.println("姓名:" + interest);
	}

}

创建Test.java调用学生类,且不给它赋初值

package default_package;

public class Test {

	public static void main(String[] args) {
		Student s = new Student();
		s.showInfo();
	}
	
}

Test.java运行结果:
在这里插入图片描述

2. 匿名对象

我们也可以不定义对象的句柄(如先Student s = new Student(); 然后s.showInfo();),而直接调用这个对象的方法。这样的对象叫做匿名对象
如:new Student().showInfo();

使用情况

  • 如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。
  • 我们经常将匿名对象作为实参传递给一个方法调用。

3. 练习

3.1. 习题一

习题1: 创建一个 Person 类,其定义如下:
在这里插入图片描述
要求:
(1) 创建 Person 类的对象,设置该对象的name 、 age 和 sex 属性,调用 study 方法,输出字符串“ studying” ,调用 showAge() 方法显示 age 值,调用 addAge() 方法给对象的 age 属性值增加 2 岁。
(2) 创建第二个对象,执行上述操作,体会同一个类的不同对象之间的关系。

答案:
Person类

package default_package;

public class Person2 {
	public String name;
	public int age;
	public int sex;//性别,0男1女
	
	public void study() {
		System.out.println("studying");
	}
	
	public void showAge() {
		System.out.println(age);
	}
	
	public int addAge(int i) {
		age += i;
		return age;
	}
}

Test.java:

package default_package;

public class Test {

		Person2 p = new Person2();
		
		p.name = "Lucy";
		p.age = 11;
		p.sex = 1;
		p.study();
		
		int a = p.addAge(2);
		System.out.println("a:" + a + " p.age:" + p.age);
	
}

Test.java运行结果:
在这里插入图片描述

3.2. 习题二

习题2: 利用面向对象的编程方法,设计类 Circle 计算圆的面积。

答案:
Circle类

package default_package;

public class Circle {
	/**
	 * 面积的计算方法
	 * @param r
	 * @return
	 */
	public double area(double r) {
		return 3.14 * r * r;
	}
}

Test.java:

package default_package;

public class Test {

		double area = new Circle().area(2);
		System.out.println("半径为2的圆的面是:" + area);
	
}

Test.java运行结果:
在这里插入图片描述

注意:
类的访问机制:
(1) 在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(例外:static 方法访问非 static 的成员变量,编译不通过。)
错误写法:

在这里插入图片描述
正确写法:
在这里插入图片描述

package default_package;
	static int t = 0;
	public static void main(String[] args) {
		System.out.println(t);
	
}

(2) 在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员
在这里插入图片描述

4. 总结

面向对象思想“落地”法则(一)

  1. 关注于类的设计,即设计类的成员:属性 、方法
  2. 类的实例化,即创建类的对象(比如: Person p = new Person();
  3. 通过对象.属性对象.方法 执行

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

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

相关文章

C# 搭建一个简单的WebApi项目23.10.10

一、创建Web API 1、创建一个新的web API项目 启动VS 2019,并在“开始页”选择“创建新项目”。或从“文件”菜单选择“新建”,然后选择“项目”。 选择ASP.NET Web应用程序(.NET Framework) 2.点击下一步,到这个页面时选择Web API。 3.选中…

类加载器、双亲委派机制

目录 1 JVM是什么2 类加载系统2.1 类的加载过程2.2 类加载器 3 双亲委派机制3.1 双亲委派机制介绍3.2 双亲委派机制的优缺点3.3 自定义类加载器实现双亲委派机制 1 JVM是什么 Java Virtual Machine(Java虚拟机)是java程序实现跨平台的⼀个重要的⼯具&am…

python查找替换:查找空行,空行前后添加```,```中间添加 # + 空格 + 空行后遇到的第1行文字?

初始代码 查找空行空行前后添加 中间添加 # 空行后遇到的第1行文字txt 36 96 159 8 72可以使用Python的字符串处理函数来查找并修改文本中的空行。以下是一个示例代码,演示如何在文本中查找空行,并在每个空行前后添加和一个注释: # 原始文本…

销售活动管理必备工具——CRM系统软件

在企业业务中,销售活动是实现企业业绩目标的基本单元,起着奠基石的作用。CRM销售管理系统是销售活动管理的必备工具,帮助企业更好地开展销售活动。下面来说说CRM系统如何找到并输出关键销售活动? 在能顺利找到并输出关键销售活动…

选刊CFP | 中科院1区TOP,IF18.6,Elsevier出版社,仅3个月录用!

【SciencePub学术】 本期推荐 部分学者论文完成后,选刊上犯难,面对纷繁复杂的期刊信息及流程,很难有时间和精力一一调研查看,小编在也经常收到此类信息,希望我们帮助查询期刊信息。为此,小编开设此专栏【选…

leetcode:455. 分发饼干(python3解法)

难度:简单 假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。 对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j&#xff…

超详细!主流大语言模型的技术原理细节汇总!

1.比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节:tokenizer、位置编码、Layer Normalization、激活函数等。 2. 大语言模型的分布式训练技术:数据并行、张量模型并行、流水线并行、3D 并行、零冗余优化器 ZeRO、CPU 卸载技术 ZeRo-offload、混合精度训…

吃透底层:从路由到前缀树

前言 今天学到关于路由相关文章,发现动态路由中有一个很常见的实现方式是前缀树,很感兴趣这个算法,故进行记录。 前缀树 Trie(又被叫做字典树)可以看作是一个确定有限状态自动机,尽管边上的符号一般是隐含…

Prometheus和grafana安装配置手册

1.简介 本文档为prometheus和grafana安装配置手册,prometheus和grafana的内容、和操作过程,详细介绍了服务监控配置、dashboard配置、告警配置等操作。 2.部署说明 Prometheus基于Golang编写(需要安装),编译后的软件…

433/315无线接收芯片XL710,适合各种低功耗要求的设备等

XL710是一款高集成度、低功耗的单片ASK/OOK射频接收芯片。高频信号接收功能全部集成于片内以达到用最少的外围器件和最低的成本获得最可靠的接收效果。因此它是真正意义.上的“无线高频调制信号输入,数字解调信号输出”的单片接收器件。 XL710为SOP8封装&#xff0…

Python 中最常用的 4种股票价格移动平均方法(二)

一、简介 在本文中,我们重点关注一些小众但值得注意的移动平均方法。这些利基工具通常来自专门研究或开发用于解决非常特殊的交易场景。虽然不太主流,但它们提供了对市场动态的极其细致入微的见解。完整列表如下: 第 1 部分 — 基本技术&…

大模型部署手记(11)LLaMa2+Chinese-LLaMA-Plus-2-7B+Windows+llama.cpp+中文对话

1.简介: 组织机构:Meta(Facebook) 代码仓:GitHub - facebookresearch/llama: Inference code for LLaMA models 模型:LIama-2-7b-hf、Chinese-LLaMA-Plus-2-7B 下载:使用huggingface.co和百…

微软放大招!Bing支持DALL-E3,免费AI绘画等你来体验!

最近 OpenAI 发布了DALL-E3模型,出图效果和Midjourney不相上下,不过要使用它有些门槛,必须是 ChatGPT Plus 账户,而且还要排队,怎么等都等不到,搞得大家都比较焦虑。 不过现在微软在Bing上也支持 DALL-E3 …

Excel恢复科学技术法显示的数据

Excel中输入位数较大的数据时,软件会自动使用科学计数法显示。很多时候并不需要这样的计数格式,所以需要把它转变为普通的数字格式 操作方法 选中单元格/列/行》右键》设置单元格式 在打开的窗口中,切换到“数字”选项卡,点击“自…

第四章 图表样式美化

第四章 图表样式美化 1.图表样式概述 1.1.默认图表样式 ​ matplotlib在绘图的过程中会读取存储在本地的配置文件matplotlibrc,通过matplotlibrc文件中的缺省配置信息指定图表元素的默认样式,完成图表元素样式的初始设置。 ​ matplotlib文件包含众多…

springboot单独在指定地方输出sql

一般线上项目都是将日志进行关闭,因为mybatis日志打印,时间长了,会占用大量的内存,如果我想在我指定的地方进行打印sql情况,怎么玩呢! 下面这个场景: 某天线上的项目出bug了,日志打印…

Keil软件仿真的方法: μVision2调试器

目录 1. μVision2调试器2. 调试工具3. 单步调试4. 使用断点调试5. 使用监视窗口调试6. 调试按钮的功能1.“单步”按钮2.“跟踪”按钮3.“运行到退出”按钮4.“运行到光标行”按钮 参考资料 软件仿真是利用PC的CPU来模拟单片机的运…

鸿蒙API9手机号验证

鸿蒙API9手机号验证 做一个app用户认证,之前一直想着都是通过HMS Core里边来接入,但是里边的文档最高只支持到API7。 由于想直接用API9来接,毕竟感觉后续ts/java混合开发要被舍弃,尽量还是用新的来弄。看了一遍新的API9的文档&am…

The-MIFARE-Hack-1 -mifare技术

RFID卡的使用变得越来越普遍。 一般来说,使用两种类型的RFID卡:有源卡和无源卡。 主动系统有自己的能源,而被动系统则依赖读卡器提供的能量。 最常见的 RFID 卡之一是 MIFARE Classic,由 NXP Semiconductors(以前是 Ph…

如何强化九小场所安全检查隐患排查工作

九小场所与人们的日常生活息息相关,相关部门对这些场所的消防安全非常重视;但是由于各种原因,经营者安全意识薄弱,导致存在严重的安全隐患。凡尔码开发的九小场所巡检系统针对九小场所基数大、底数不清、责任不明、主体意识薄弱等…