关于Java中构造方法的问题以及回答
构造方法
概念:
又叫 构造器,区分于传统的方法,是一个在创建对象时被系统自动调用的特殊方法
作用:
一:为对象进行初始化(成员变量)的工作
二:为对象在堆内存中开辟独立的内存空间
定义格式:
访问修饰符 方法名(){
}
用法:
只能通过new关键字进行调用
person{
public person(){
}
}
//代码测试
public static void main(String [] args){
person per = new person();
}
注意事项:
一:方法名必须和类名保持一致
二:当一个类中没有定义构造方法时,系统会自动加载一个无参的构造方法
//一:不写构造方法,系统默认加载构造方法
Construction con = new Construction();
con.eat(); 运行结果如下:
我是:null,今年:0岁,喜欢吃拉面
三:如果用户重新定义了一个构造方法,那么Java提供的无参的构造方法会默认覆盖
/**
* 构造方法: 重写构造方法,初始化成员变量
*/
public Construction(){
username = "鸣人";
garder = 19;
}
//一:重写构造方法,初始化成员变量
Construction con = new Construction();
con.eat();
运行结果:
我是:鸣人,今年:19岁,喜欢吃拉面
四:返回值问题
构造方法又叫构造器,不能把它等同于普通方法去对比,什么意思呢?
就是,普通方法有返回值类型,有return语句,有访问修饰符,但是构造方法从本质上就不是普通方法
构造方法:没有返回值类型,void也不能加
没有返回值,但是有运行结果,运行结果就是创建一个对象,所以在构造方法内不能调用return。
访问修饰符,只能是public,不能是其他的访问修饰符。
五:构造方法之间可以使用 this() 相互调用 但是 this() 必须是构造方法内容的第一行 如果有参数 传入相应的参数
/**
* 构造方法:无参
*/
public Construction(){
this("佐助",19);
// username = "鸣人";
// garder = 18;
} Construction con = new Construction();
con.eat();
运行结果:
我是:佐助,今年:19岁,喜欢吃拉面
六:当参数列表的参数名和成员变量同名时 要使用this.区分成员变量和 局部变量
/**
* 构造方法:有参
* @param username:用户姓名
* @param garder:用户年龄
*/
public Construction(String username,int garder){
this.username = username;
this.garder = garder;
}
//一:重写构造方法,初始化成员变量
Construction con = new Construction("鸣人",19);
con.eat();
运行结果:
我是:鸣人,今年:19岁,喜欢吃拉面
关于Java中构造方法的问题以及回答的更多相关文章
- java中构造方法和方法super/this超类与子类中初始化顺序
java中构造方法和方法全面解析 我相信大多说人都对构造方法.方法不陌生,而且很了解,但我也相信有很多像我这样的没有一个很好很清晰很全面的认识,今天就把它整理如下,希望能给大家带来点方便与帮助,也希望 ...
- 关于java中构造方法、实例初始化、静态初始化执行顺序
在Java笔试中,构造方法.实例初始化.静态初始化执行顺序,是一个经常被考察的知识点. 像下面的这道题(刚刚刷题做到,虽然做对了,但是还是想整理一下) 运行下面的代码,输出的结果是... class ...
- java中构造方法及其作用
构造方法作用就是对类进行初始化. 如果你没有定议任何构造方法的形式,程式会为你取一个不带任何参数的构造函数,那么你产生类的对像时只能用不带参数的方法,如:class a {}//没有任何构造函数. 构 ...
- Java中构造方法与setter方法
今天在重温Java的同时,一个不是问题的问题,突然地冒出来,不知道大家是不是和我一样,也有过这个比较尴尬的问题 不啰嗦了,那咱就直接说问题吧~~~ 那么首先我们在Java中都会写构造函数,目的是在 ...
- java中构造方法和普通方法的区别
1.普通方法: 定义:简单的说方法就是完成特定功能的代码块. 普通方法定义格式: 修饰符 返回值类型 方法名 (参数类型 参数名1,参数类型 参数名2,.........) { 函数体: re ...
- Java中构造方法跟普通方法的区别?
构造方法与普通方法的调用时机不同. 首先在一个类中可以定义构造方法与普通方法两种类型的方法,但是这两种方法在调用时有明显的区别. 1.构造方法是在实例化新对象(new)的时候只调用一次 2.普通方法是 ...
- Java中构造方法、实例方法、类方法的区别
1. 构造方法 构造方法负责对象的初始化工作,为实例变量赋予合适的初始值.必须满足以下的语法规则: 方法名与类名相同: 不要返回类型(例如return.void等): 不能被static.final. ...
- Java中构造方法的执行顺序
一.先执行内部静态对象的构造方法,如果有多个按定义的先后顺序执行:静态对象在构造的时候也是也先执行其内部的静态对象. 二.再调用父类的构造方法(父类还有父类的话,从最开始的基类开始调用),如果没有明显 ...
- java中构造方法和方法全面解析
构造方法和方法的区别: 构造方法要与类名相同,无返回类型,在类初始化的时候调用. 方法最好与类名不同,对象调用,静态方法可用类名.方法(). 构造器和方法在下面三个方面区别:修饰符,返回值, ...
随机推荐
- Mint-ui 脱坑日记
Field表单组件 这个组件真是大坑特坑 带默认背景边框 找了半天才找到 原生属性 :attr="{ maxlength:10 }" 是可以设置原生属性的 注意此处限制的输入长度 ...
- Python——Pyqt5(界面)——基本设置
一.Pycharm外加设置 设置扩展工具 1.Qt Design(图形界面) Program:工程目录\venv\Lib\site-packages\pyqt5-tools\designer.exe ...
- hdu P3374 String Problem
今天又在lyk大佬的博客学会了——最小表示法(异常激动发篇题解纪念一下说在前面:给luogu提个建议最小表示法的题太少了,都被hdu抢去了!!! 我们先看一下题目 看完后可以用一个字概括——蒙,两个字 ...
- bzoj 3282: Tree (Link Cut Tree)
链接:https://www.lydsy.com/JudgeOnline/problem.php?id=3282 题面: 3282: Tree Time Limit: 30 Sec Memory L ...
- magento 2 method config
1. 模板渲染静态文件: <?php echo $this->getViewFileUrl('requirejs::require.js'); ?> 2.
- tar.gz,直接解压可用?还是需要编译安装?
在linux搭建环境,下载的tar.gz安装包,有的直接解压就可以用,有的需要编译安装后才可用 怎么知道该怎么操作呢? 其实,tar -zxvf解压后,进入目录看README.md就知道答案了 另外, ...
- 【集训队互测2015】Robot
题目描述 http://uoj.ac/problem/88 题解 维护两颗线段树,维护最大值和最小值,因为每次只有单点查询,所以可以直接在区间插入线段就可以了. 注意卡常,不要写STL,用链表把同类修 ...
- node配置环境变量
package.json "scripts": { "start_test": "cross-env BUILD_ENV=dev nuxt start ...
- JavaScript千分符---正则实现
一般在JavaScript中实现千分符,是使用切割+连接一顿操作 这里尝试一下使用正则快速实现千分符 let num0 = '12' let num1 = '123' let num2 = '1234 ...
- CentOS安装glibc-2.14
CentOS安装glibc-2.14 到http://ftp.gnu.org/gnu/glibc/下载glibc-2.14.tar.gz wget https://ftp.gnu.org/gnu/ ...