Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java学习历程之————进阶篇(九)

Java学习历程之————进阶篇(九)

作者头像
用户5410712
发布于 2022-06-01 10:10:56
发布于 2022-06-01 10:10:56
29000
代码可运行
举报
文章被收录于专栏:居士说AI居士说AI
运行总次数:0
代码可运行

千禧年大奖难题又称世界七大数学难题, 是七个由美国克雷数学研究所于2000年5月24日公布的数学猜想。这七个“千年大奖问题”分别是是:NP完全问题, 郝治(Hodge)猜想, 庞加莱(Poincare)猜想, 黎曼(Rieman 假设,杨-米尔斯 (Yang-Mills)理论, 纳卫尔-斯托可(Navier-Stokes方程, BSD(Birch and Swinnerton-Dyer)猜想。后面会分别为大家介绍这七个百万大奖难题。(ps:那大家知道千禧一代特指那一类人吗?千禧一代是指1982-2000年之间出生的人)

前言

本周我们来深入学习Java的new运算符。进入Java进阶篇学习以来,new运算符就是我们的常客,那我们再来好好认识一下new。

一、new运算符

一、new运算符

“new”在 Java 中意思是“新的”,可以说是 Java 开发者最常用的关键字。在 Java 中 new 的操作往往意味着在内存中开辟新的空间,这个内存空间分配在内存的堆区。堆是用来存放由 new 创建的对象和数组,即动态申请的内存都存放在堆区。栈是用来存放在方法中定义的一些基本类型的变量和对象的引用变量。Java 中一般使用 new 来创建对象,它可以动态地为一个对象分配地址。

1.1 定义格式:

它的通用格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
classname obj = new classname( );

其中,obj 是创建的对象,classname 是类的名字,类名后边的( )指明了类的构造方法。构造方法定义了当创建一个对象时要进行的操作(不清楚的可以参考上周我们对构造方法的讲解。)

二、new示例

二、new运算符示例

2.1 先创建Person类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package Jinjie9;
public class Person{
    private String name;
    private int age;
    private String sex;
    public Person(String name,int age,String sex){//定义带有三个参数的构造方法
        this.name=name;
        this.age=age;
        this.sex=sex;
    }
    public Person(String name,int age){//定义带有两个参数的构造方法
        this.name=name;
        this.age=age;
    }
    public void show(){
        System.out.println("我叫"+name+","+"今年"+age+"岁"+","+sex);
    }
}

2.2 创建PersonDemo调用构造方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package Jinjie9;
public class PersonDemo {
    public static void main(String[] args){
        Person quanquan = new Person("小圈圈",18,"女");//调用三个参数的构造方法
        quanquan.show();
        Person IT = new Person("IT进阶之旅",1);//调用两个参数的构造方法
        IT.show();
    }
}

2.3 运行结果及解析

在本例中Person IT=new Person (); 的作用就是:

1.加载Person.class文件进内存;

2.在栈内存为quanquan、IT开辟空间;

3.在堆内存为Person对象开辟空间;

4.对Person对象的成员变量进行默认初始化;

5.对Person对象的成员变量进行显示初始化;

6.通过构造方法对Person对象进行成员变量赋值;

7. Person对象初始化完毕,把对象变量赋值给quanquan、IT变量;

总结new运算符的作用如下:

1.Java关键字new是一个运算符。与+、-、*、/等运算符具有相同或类似的优先级。

2.创建一个Java对象需要三步:声明引用变量、实例化、初始化对象实例。

3.实例化:就是“创建一个Java对象”-----分配内存并返回指向该内存的引用。

4.初始化:就是调用构造方法,对类的实例数据赋初值。

上面的示例中,当调用只有两个参数的构造方法时,sex参数没有定义,即sex没有指定值,所以在实例IT时,最后的sex返回null,那我们下面再细说一下关键字null。

Java空对象null

三、Java空对象null

Java 语言支持两种数据类型,分别是基本数据类型和引用数据类型,而 null 是一种特殊的引用数据类型。为了明确表示那些仅有名字而没有内存空间的变量的具体内容,Java 引入了关键字 null。null 表示“空”的意思,是绝对意义上的空,这个空指的是不存在。

3.1 null空对象

那么上面的示例中为何会出现null呢?我们应该如何修改程序使输出正常呢?

3.2 解决办法

正如上面所说的一样,null代表不存在,我们定义show()方法为:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
System.out.println("我叫"+name+","+"今年"+age+"岁"+","+sex);

但是我们定义了两个构造方法,分别是三参和两参,对于IT,我们调用的是两参的构造方法,只有两个参数,对于sex并没有定义,也没有任何值传入,所以在定义输出函数的时候不应该加入sex值。我们只需要重新定义输出即可。如下图:

END

小编有话说

上周习题答案揭晓时刻

大家继续加油~

编辑:玥怡居士|审核:世外居士

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT进阶之旅 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验