【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.hqwc.cn/news/130256.html

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

相关文章

linux | linux扩大磁盘空间 | centos7.9 | 虚拟机

注意:可以完全参考下面这边博客(我只是搬运工) centos扩大磁盘空间 简单讲讲,为什么有点失落落的? 明明就是一个 很程序化的东西 可是网上一大推 天花乱坠 而且很多人都是半吊子水,甚至半吊子都没有 通过关…

如何打造一个网络框架模块对接服务器

一、了解网络框架的基本原理 在开始打造网络框架模块之前,首先需要了解网络框架的基本原理。网络框架是一个软件模块,用于处理网络通信的各种细节,包括数据传输、协议解析、错误处理等。常见的网络框架有HTTP、TCP/IP、WebSocket等。 对啦&…

mysql面试题32:MySQL数据库服务器性能分析的方法命令有哪些?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:MySQL数据库服务器性能分析的方法命令有哪些? MySQL数据库服务器性能分析的方法和命令有以下几种: EXPLAIN命令:用于分析查询语句的执行计划,…

嵌入式C语言中整形溢出问题分析

整型溢出有点老生常谈了,bla, bla, bla… 但似乎没有引起多少人的重视。整型溢出会有可能导致缓冲区溢出,缓冲区溢出会导致各种黑客攻击。 今天分享一篇文章,希望大家都了解一下整型溢出,编译器的行为,以及如何防范&a…

Redis-分布式锁

分布式锁相关内容 超卖问题切入可以使用互斥锁给先获取到锁的线程加锁吗?使用redis分布式锁解决超卖问题setnx命令实现分布式锁为什么需要设置过期时间?Redis实现分布式锁如何合理控制锁的有效时长 redisson实现分布式锁 超卖问题切入 我们先来看一个项目…

【附代码】使用Shapely计算多边形外扩与收缩

文章目录 相关文献效果图代码 作者:小猪快跑 基础数学&计算数学,从事优化领域5年,主要研究方向:MIP求解器、整数规划、随机规划、智能优化算法 本文档介绍如何使用 Shapely Python 包 计算多边形外扩与收缩。 如有错误&…

Git分支教程:详解分支创建、合并、删除等操作

GIT分支是Git中用于开发和管理代码的重要概念之一。每个分支都是一个独立的代码版本,可以在分支上进行修改和提交,而不影响主线(通常是master分支)上的开发工作。 分支的作用: 并行开发:多个开发人员可以…

k8s containerd查看镜像

直接查看crictl image会报错: 1) crictl config runtime-endpoint unix:///run/containerd/containerd.sock 2) vi /etc/crictl.yaml 3) systemctl daemon-reload 此时,再查看image:

【计算机网络】UDP协议编写群聊天室----附代码

UDP构建服务器 x 预备知识 认识UDP协议 此处我们也是对UDP(User Datagram Protocol 用户数据报协议)有一个直观的认识; 后面再详细讨论. 传输层协议无连接不可靠传输面向数据报 网络字节序 我们已经知道,内存中的多字节数据相对于内存地址有大端和小端之分, 磁盘文件中的…

Git相关知识(1)

目录 1.初识Git 1.基础知识 2.centos中下载 2.基本操作 1.创建本地仓库 2.配置本地仓库 3.版本库、工作区、暂存区 4.添加文件 5.add和commit对git文件的作用 6.修改文件 7.版本回退 8.撤销修改 9.删除文件 3.分支操作 1.HEAD与分支 2.创建分支 3.删除分支 …

sface人脸相似度检测

sface人脸相似度检测,基于OPENCV,人脸检测采用yunet,人脸识别采用sface,支持PYTHON/C开发,图片来自网络,侵权请联系本人立即删除 yunet人脸检测sface人脸识别,检测两张图片的人脸相似度

NoSQL数据库(林子雨慕课课程)

文章目录 5.1 NoSQL数据库5.2 NoSQL和关系数据库的比较5.3 四大类型NoSQL数据库5.3.1 键值数据库和列族数据库5.3.2 文档数据库、图数据库、以及不同数据库比较分析 5.4 NoSQL数据库的理论基石CAP理论:BASE理论:Eventual consistency(最终一致…