阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

类中的构造方法

375次阅读
没有评论

共计 2501 个字符,预计需要花费 7 分钟才能阅读完成。

1、构造方法概述

1.1、什么是构造方法

构造方法是正常开发中不可或缺的一部分,是语法上必须存在的。是一个具有特殊格式的方法,且有特殊的调用方式。

1.2、构造方法作用

1.2.1、实例化对象

用来创建实例对象的方法,给对象的数据进行初始化,如:

Person p = new Person();

调用构造方法 Person(); 只是我们没有写这个方法,而是 Java 自动补齐了这个方法,是方法就可以传入参数。

1.2.2、初始化成员变量

创建对象时,可以直接为成员变量赋值,无需再在对象产生后再赋值。

int x; public Person(){// 初始化 x 为 0 } public Person(int x){this.x=x;// 局部变量赋值 }

1.3、构造方法定义

** 位置:** 一般定义在其他方法前,成员变量后。

** 定义规则:** 一般用 public 修饰,没有返回值类型定义,方法名与类名相同,参数依据需求而定。

public 类名 (参数类型 参数 1,参数类型 参数 2,…){

​ // 创建对象时要执行的逻辑,经常为成员变量赋值

}

public class Person{private String name; private int age;    // 两个构造方法为重载关系 public Person() {} // 空参的构造方法 public Person(String name,int age) {// 带参的构造方法 this.name = name; this.age = age; } }

2、构造方法表现形式

2.1、默认构造方法

构造方法是必须存在的,如果没有手动给出构造方法,Java 会自动为我们补齐一个无参的构造方法。这个过程我们是看不到的。
如果手动给出了构造方法,java 则不会再自动补齐任何构造。

public class Person{public static void main(Stringa args[]){Person p= new Person();} }
public class Person{public Person(int age){} public static void main(String args[]){Person p= new Person();} }

2.2、无参构造

无参的构造方法,一般情况下是我们的默认构造方法

public class Person{public Person(){} public static void main(Stringa args[]){Person p= new Person();} }

2.3、有参构造

带参的构造方法通常是为了给属性赋值的

public class Person{public Person(String name,int age){} public Person(int age){} public static void main(Stringa args[]){Person p= new Person();} }

3、构造方法应用

3.1、创建对象和初始化值

同其他方法相同,构造方法也是先定义再使用。而不同的是,其他方法的调用是为了这个方法对应的功能,而构造方法的功能就是创建对象,同时可以为属性赋值。

我们在此之前创建对象的方式均是通过构造方法,这样当对象创建出来后就已经具备了非默认值的初始值。

new 类名 ([实参列表]);

Person p = new Person();  // 产生了 Person 的对象 System.out.println(p);  // 打印结果为一个对象地址值,如 0x9a64 System.out.println(p.getName());  // 打印结果为 null
Person p2 = new Person(“AngelaBaby”,18); // 产生了一个 Person 对象 System.out.println(p2);  // 打印结果为一个对象地址值,如 0252b2 System.out.println(p2.getName()); // 打印结果为 AngelaBaby

3.2、注意事项

接口没有构造方法,抽象类具有构造方法

构造方法不能被继承,如:父类叫 Person,子类叫 Student 继承构造方法后,那么我 new Person() 后是子类的对象,还是父类的对象,我们分不清楚。而且构造方法要求与类名相同,那么子类里面的 Person 构造方法和类名冲突了

构造方法的 public 并不是固定不变的,可以使用其他格式修饰构造方法。如:public、default、private

3.3、构造方法与 set 方法

构造方法是为了在创建的同时直接为属性赋值。

set 方法时在创建对象之后,再重新为成员变量赋值,是修改值的过程。

public class Animal {private String name = "柳岩"; private int age; // 无参 public Animal(){ } /**  * 带参的构造方法  用来给成员变量赋值   * @param name 第一个参数需要一个名字   * @param age  第二个参数需要一个年龄   */ public Animal(String name,int age){this.name = name; this.age = age; } public String getName() {return name; } public void setName(String name) {this.name = name; } public int getAge() {return age; } public void setAge(int age) {this.age = age; } }
public class TestDemo {public static void main(String[] args) {Animal a = new Animal(); System.out.println(a.getName()); System.out.println(a.getAge()); System.out.println("--------------"); Animal a2 = new Animal("刘柳",20); a2.setName("刘艳"); System.out.println(a2.getName()); System.out.println(a2.getAge()); } }

运行结果:

类中的构造方法

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-06-06发表,共计2501字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19348
评论数
4
阅读量
7822544
文章搜索
热门文章
开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南

开发者必备神器:阿里云 Qoder CLI 全面解析与上手指南 大家好,我是星哥。之前介绍了腾讯云的 Code...
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板1Panel:小白轻松构建Web服务与面板加固指南

云服务器部署服务器面板 1Panel:小白轻松构建 Web 服务与面板加固指南 哈喽,我是星哥,经常有人问我不...
4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

4盘位、4K输出、J3455、遥控,NAS硬件入门性价比之王

  4 盘位、4K 输出、J3455、遥控,NAS 硬件入门性价比之王 开篇 在 NAS 市场中,威...
优雅、强大、轻量开源的多服务器监控神器

优雅、强大、轻量开源的多服务器监控神器

优雅、强大、轻量开源的多服务器监控神器 在多台服务器同时运行的环境中,性能监控、状态告警、资源可视化 是运维人...
星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛NAS硬件03:五盘位+N5105+双网口的成品NAS值得入手吗

星哥带你玩飞牛 NAS 硬件 03:五盘位 +N5105+ 双网口的成品 NAS 值得入手吗 前言 大家好,我...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件

【开源神器】微信公众号内容单篇、批量下载软件 大家好,我是星哥,很多人都希望能高效地保存微信公众号的文章,用于...
三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Android 的最优解?

  三大开源投屏神器横评:QtScrcpy、scrcpy、escrcpy 谁才是跨平台控制 Andr...
星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

星哥带你玩飞牛NAS-16:飞牛云NAS换桌面,fndesk图标管理神器上线!

  星哥带你玩飞牛 NAS-16:飞牛云 NAS 换桌面,fndesk 图标管理神器上线! 引言 哈...
每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年0.99刀,拿下你的第一个顶级域名,详细注册使用

每年 0.99 刀,拿下你的第一个顶级域名,详细注册使用 前言 作为长期折腾云服务、域名建站的老玩家,星哥一直...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...