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

文章目录

  • 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.mzph.cn/news/100665.shtml

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

相关文章

提取Android盒子dtb文件

概述 最近从某鱼上掏了一个CM201-1 YS的盒子,动手倒腾倒腾,准备安装Armbian,用来做矿机,但该型号的盒子ophub上面没有完全适配的镜像,故而想尝试下,看能否整个适配镜像出来。 操作系统 Windows Linux 工…

TDengine时序数据库学习使用

数据库要求: 1.目前服务器只能在linux运行,先安装服务器版本v1 2.下载与v1完全匹配的客户端版本v1(客户端与服务器的版本号不匹配可能访问不了服务器) 第一步 安装 安装服务器注意,安装教程: 使用安装…

(蓝宝书)网络安全——CTF那些事儿

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。关…

深度学习问答题(更新中)

1. 各个激活函数的优缺点? 2. 为什么ReLU常用于神经网络的激活函数? 在前向传播和反向传播过程中,ReLU相比于Sigmoid等激活函数计算量小;避免梯度消失问题。对于深层网络,Sigmoid函数反向传播时,很容易就…

mp4音视频分离技术

文章目录 问题描述一、分离MP3二、分离无声音的MP4三、结果 问题描述 MP4视频想拆分成一个MP3音频和一个无声音的MP4文件 一、分离MP3 ffmpeg -i C:\Users\Administrator\Desktop\一个文件夹\我在财神殿里长跪不起_完整版MV.mp4 -vn C:\Users\Administrator\Desktop\一个文件…

分布式数据库HBase(林子雨慕课课程)

文章目录 4. 分布式数据库HBase4.1 HBase简介4.2 HBase数据模型4.3 HBase的实现原理4.4 HBase运行机制4.5 HBase的应用方案4.6 HBase安装和编程实战 4. 分布式数据库HBase 4.1 HBase简介 HBase是BigTable的开源实现 对于网页搜索主要分为两个阶段 1.建立整个网页索引&#xf…

如何在 Android 中完成一个 APT 项目的开发?

前言 APT(Annotation Processing Tool)即注解处理器,是一种处理注解的工具。 APT在编译时期扫描处理源代码中的注解,开发中可以根据注解,利用APT自动生成Java代码,减少冗余的代码和手动的代码输入过程,提升了编码效率…

Gralloc ION DMABUF in Camera Display

目录 Background knowledge Introduction ia pa va and memory addressing Memory Addressing Page Frame Management Memory area management DMA IOVA and IOMMU Introduce DMABUF What is DMABUF DMABUF 关键概念 DMABUF APIS –The Exporter DMABUF APIS –The…

上海亚商投顾:沪指探底回升 华为汽车概念股集体大涨

上海亚商投顾前言:无惧大盘涨跌,解密龙虎榜资金,跟踪一线游资和机构资金动向,识别短期热点和强势个股。 一.市场情绪 三大指数昨日探底回升,早盘一度集体跌超1%,随后震荡回暖,深成指、创业板指…

LeetCode二叉树OJ

目录 剑指 Offer 55 - I. 二叉树的深度 - 力扣(LeetCode) 965. 单值二叉树 - 力扣(LeetCode) 100. 相同的树 - 力扣(LeetCode) 101. 对称二叉树 - 力扣(LeetCode) 二叉树遍历_牛客题…

TensorFlow学习:使用官方模型进行图像分类、使用自己的数据对模型进行微调

前言 上一篇文章 TensorFlow案例学习:对服装图像进行分类 中我们跟随官方文档学习了如何进行预处理数据、构建模型、训练模型等。但是对于像我这样的业余玩家来说训练一个模型是非常困难的。所以为什么我们不站在巨人的肩膀上,使用已经训练好了的成熟模…

VIT(Vision Transformer)学习-模型理解(一)

VIT (Vision Transformer) 模型论文代码(源码)从零详细解读,看不懂来打我_哔哩哔哩_bilibili VIT模型架构图 1.图片切分为patch 2. patch转化为embedding 1)将patch展平为一维长度 2)token embedding:将拉平之后的序列映射…

【ARM AMBA5 CHI 入门 12.1 -- CHI 链路层详细介绍 】

文章目录 CHI 版本介绍1.1 CHI 链路层介绍1.1.1 Flit 切片介绍1.1.2 link layer credit(L-Credit)机制1.1.3 Channel1.1.4 Port1.1. RN Node 接口定义1.1.6 SN Node 接口定义1.2 Channel interface signals1.2.1 Request, REQ, channel1.2.2 Response, RSP, channel1.2.3 Snoop…

如何找到新媒体矩阵中存在的问题?

随着数字媒体的发展,企业的新媒体矩阵已成为品牌推广和营销的重要手段之一。 然而,很多企业在搭建新媒体矩阵的过程中,往往会忽略一些问题,导致矩阵发展存在潜在风险,影响整个矩阵运营效果。 因此,找到目前…

二维离散傅里叶变换的实现

二维离散傅里叶变换的实现 1.使用Python包实现1.1 fftshift在numpy中的实现1.2 平移后的幅度谱 2.使用c实现之12.1 FFTW库安装2.2 结果比较 3.使用c实现之2参考文献 1.使用Python包实现 import numpy as np import matplotlib.pyplot as plt anp.array([0, 2, 4, 1,6, 1, 3, …

澳大利亚教育部宣布ChatGPT将被允许在澳学校使用!

教育部长最近宣布,从 2024 年起,包括 ChatGPT 在内的人工智能将被允许在所有澳大利亚学校使用。 (图片来源:卫报) 而早些时候,澳洲各高校就已经在寻找与Chatgpt之间的平衡了。 之前,悉尼大学就…

leetCode 1035.不相交的线 动态规划 + 滚动数组 (最长公共子序列)

1035. 不相交的线 - 力扣(LeetCode) 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足满足: nums1[i] nums2[j]…

蓝桥杯每日一题20233.10.10

题目描述 回文日期 - 蓝桥云课 (lanqiao.cn) 题目分析 对于此题,我们最先想到的是暴力解法,将每一种情况经行循环查找,在查找的过程中记录下答案,回文日期就是字符串判断回文,ABABBABA型回文日期可以将回文经行特判…

openGauss学习笔记-96 openGauss 数据库管理-访问外部数据库-file_fdw

文章目录 openGauss学习笔记-96 openGauss 数据库管理-访问外部数据库-file_fdw96.1 使用file_fdw96.2 注意事项 openGauss学习笔记-96 openGauss 数据库管理-访问外部数据库-file_fdw openGauss的fdw实现的功能是各个openGauss数据库及远程服务器(包括数据库、文件…

沪深300期权一个点多少钱?

经中国证监会批准,深圳证券交易所于2019年12月23日上市嘉实沪深300ETF期权合约品种。该产品是以沪深300为标的物的嘉实沪深300ETF交易型指数基金为标的衍生的标准化合约,下文介绍沪深300期权一个点多少钱?本文来自:期权酱 一、沪深300期权涨…