关于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中构造方法和方法全面解析
构造方法和方法的区别: 构造方法要与类名相同,无返回类型,在类初始化的时候调用. 方法最好与类名不同,对象调用,静态方法可用类名.方法(). 构造器和方法在下面三个方面区别:修饰符,返回值, ...
随机推荐
- 2019-04-16 SpringMVC 学习笔记
1. 配置过程: ① 配置servlet(org.springframework.web.servlet.DiapatcherServlet)拦截请求 ② SpringMVC的默认配置文件:servl ...
- DS博客作业03--栈和队列
1.本周学习总结 本周学习中学习了栈和队列,栈和队列都属于线性结构,栈和队列不同于线性表的地方在于它们的相关运算具有一些特殊性,所以栈和队列也称为操作受限的线性表. 1.栈 栈是重要且常用的数据结构之 ...
- BZOJ1112[POI2008]砖块Klo——非旋转treap
题目描述 N柱砖,希望有连续K柱的高度是一样的. 你可以选择以下两个动作 1:从某柱砖的顶端拿一块砖出来,丢掉不要了. 2:从仓库中拿出一块砖,放到另一柱.仓库无限大. 现在希望用最小次数的动作完成任 ...
- Xshell连接ubuntu server端的vim(256色彩配置)
VIM主题(Xshell端) [注]我的配置:Xshell连接VMware Workstation Pro下的Ubuntu 18 server版(要注意这里的server版,好似该版本没有下述的256 ...
- vue路由参数变化刷新数据
当路由到某个组件时,由于组件会复用,所以生命周期函数不会再次执行, 如果这个组件是模板组件,靠传入不同数据来显示的.那么,可能会发生参数变化了但页面数据却不变化. 问题 假如有个组件 info.vue ...
- Multi-View 3D Reconstruction with Geometry and Shading——Part-2
From PhDTheses Multi-View 3D Reconstruction with Geometry and Shading 我们的主要目标是只利用图像中的信息而没有额外的限制或假设来得 ...
- TODO springboot学习笔记
学习中,是在是搞不懂是什么狗屎....
- windows环境下安装composer,然后使用composer安装Laravel
Composer 不是一个包管理器,它仅仅是一个依赖管理工具,它允许你申明项目所依赖的代码库,并在你的项目中安装这些代码库.它涉及 “packages” 和 “libraries”,但它在每个项目的基 ...
- 如何安装多个mysql 或者如何更改mysql服务名
此教程适合免安装版本(压缩包)的mysql: 有的时候你需要一台计算机上安装不同的mysql版本,而不同版本的mysql服务名称都是mysql,安装时会有冲突 解决的办法就是安装的时候更改名字 在命令 ...
- 关于使用jwt编写接口时候对token判断时候错误的机制处理
前言:php在使用接口时候很多时候都是需要带token的,如果不对token进行校验那么别人就能够随意编写一个token进入你的接口拿数据,应该怎样处理呢? //生成token public func ...