关于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中构造方法和方法全面解析
构造方法和方法的区别: 构造方法要与类名相同,无返回类型,在类初始化的时候调用. 方法最好与类名不同,对象调用,静态方法可用类名.方法(). 构造器和方法在下面三个方面区别:修饰符,返回值, ...
随机推荐
- DAY22、面向对象
一.复习:1.面向过程与面向对象 过程:程序流程化,可拓展性差 对象:程序流程多样化,可拓展性强 面向对象引入属性 | 方法的概念,通过所属者.语法调用2.拥有名称空间的对象:有__dict__属性, ...
- git异常操作解决办法合集
1. git add .后发现提交错误,想撤销 git reset head 文件名-----撤销某个文件 git reset head --hard 强制撤销当前的所有操作到上次提交的版本 2. g ...
- poj-3177(无向图缩点)
题意:给你n个点,m条边的无向联通图,问你最少增加几条边,使得这个图每对点至少有两条路径 解题思路:考虑每个环内的点必定有>=2条路径,所以先把这个无向图中的环去掉,用并查集缩环,然后剩下的图一 ...
- C++中typedef enum 和 enum
在C++中,这两种定义枚举类型的关键字用法和效果相同,推荐使用前者.typedef enum多用在C语言中. 在C语言中,如果使用typedef enum定义一个枚举类型,比如: typedef en ...
- 数据分析三剑客之Matplotlib
Matplotlib绘图和可视化 简介 我的前面两篇文章介绍了 Nimpy ,Pandas .今天来介绍一下Matplotlib. 简单来说,Matplotlib 是 Python 的一个绘图库.它包 ...
- 内置函数(sorted、map、enumerate、filter、reduce)
1.sorted() 语法: sorted(iterable, cmp=None, key=None, reverse=False) 把iterable中的items进行排序之后,返回一个新的列表,原 ...
- opencv+codeblocks +anaconda
study from : https://www.jianshu.com/p/c16b7c870356 #include <cstdio> #include <cstdlib> ...
- SaltStack配置管理和YAML
配置管理和YAML 配置管理 所谓的配置管理,也称为状态管理,就是可以通过编写文件,文件的内容为安装什么功能.开启什么服务,执行什么任务等信息,然后通过salt的配置管理,指定minion来执行这些操 ...
- static_assert与assert
C++0x中引入了static_assert这个关键字,用来做编译期间的断言,因此叫做静态断言. 其语法:static_assert(常量表达式,提示字符串). 如果第一个参数常量表达式的值为fals ...
- (双指针 二分) leetcode 167. Two Sum II - Input array is sorted
Given an array of integers that is already sorted in ascending order, find two numbers such that the ...