Java构造方法的含义和使用
我们实例化对象时,一般使用"类名 对象名 = new 类名()"来实例化,其实这样并不是十分严谨,只是编译器帮我们自动补全了一个空的构造方法,当实例化对象时,构造方法会被自动调用,所以我们应该是实例化的构造方法,那么构造方法是怎么定义的呢,方法如下:
public class Hello {
public Hello {
//这就是一个构造方法,构造方法没有返回值,方法名与类名相同,参数可以有,也可以不用指定
}
}
那么上面这个就是构造方法了,特点注释已经说明了,那么这个方法就是系统初始化的构造方法,里面可以写一些语句,当实例化对象时,构造方法会被自动调用,如果我们自己定义了新的构造方法,那么系统就会执行我们定义的,而不是默认的
我们还可以定义有参数的构造方法,目的是初始化成员变量的值,或者实例化的时候传入一些参数,我们同时可以很好地控制参数的合法性,并且有选择的进行初始化,为程序设计带来方便
另外要注意:有参数的构造方法可以和无参数的构造方法同时存在,也就是说一个类中允许出现两个构造方法,并且一个有参数一个无参数;
那么我们实例化对象的时候,如果不写参数比如:Hello he = new Hello();这样系统就调用无参数的构造方法;
如果同时实例化另外一个对象:Hello he1 = new Hello(1.2f,2.3f,3.0);那么系统就会调用我们所写的有参数的构造方法,
如果我们只定义了有参数的构造方法没有定义无参的构造方法,那么我们实例化对象的时候必须赋初始值,否则系统不会给我们添加无参的构造方法
另外构造方法和普通方法一样可以重载,我们可以根据需要来实例化对象
Java构造方法的含义和使用的更多相关文章
- java中<load-on-startup>含义
java中 load-on-startup 含义 java中的 load-on-startup 用于表示该servlet是否在servlet容器启动的时候加载. 示例: <load-on-sta ...
- Java构造方法与析构方法实例剖析
Java构造方法 类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量.在创建对象时,会自动调用类的构造方法. 构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且 ...
- Java 构造方法总结
Java 构造方法总结 ①方法名和 类名相同 ②在方法名的前面没有返回值类型的声明 ③在方法中不能使用return语句返回一个值 ④在创建对象时,要调用new,如:book b1=new book() ...
- [转]java构造方法的访问修饰符
http://my.oschina.net/u/1464678/blog/210359 1. 类(class) 可见性修饰符: public—在所有类中可见,在其他包中可以用import导 ...
- 详解Java构造方法为什么不能覆盖,我的钻牛角尖病又犯了....
一 看Think in Java,遇到个程序 class Egg2 { protected class Yolk { public Yolk() { System.out.println(" ...
- Java构造方法的姿势与易错点
<Java基础复习>-类与对象&初始化 关于类和对象的基本理念,就不再赘述(如果你学习过还忘了,就是一种特殊的本领了),没有学习过的可以去搜索一下OOP或者类和对象,百科的知识就已 ...
- java 构造方法
class MyTestClass { public int Value; public boolean equals(MyTestClass obj){ return obj.Value ==thi ...
- java构造方法的不同
分为有参数和无参数,还有THIS的使用方法,可用于传递给类,也可用于调用其它构造方法. public class Book { private String name; public Book(){ ...
- Java构造方法、成员变量初始化以及静态成员变量初始化三者的先后顺序是什么样的?
[Java笔试真题]:构造方法.成员变量初始化以及静态成员变量初始化三者的先后顺序是什么样的? [解答]:当类第一次被加载的时候,静态变量会首先初始化,接着编译器会把实例变量初始化为默认值,然后执行构 ...
随机推荐
- poj 3734 矩阵快速幂+YY
题目原意:N个方块排成一列,每个方块可涂成红.蓝.绿.黄.问红方块和绿方块都是偶数的方案的个数. sol:找规律列递推式+矩阵快速幂 设已经染完了i个方块将要染第i+1个方块. a[i]=1-i方块中 ...
- 编译java文件,出错:Failed to establish a connection with the target VM
helloword程序,所有java学习人员人生第一个程序,哎妈,基础太差,出错 public class Helloword{ public Helloword() { public static ...
- IOS基础之 (三) 类的声明和对象的创建
一 OC类的声明和实现语法 1.接口的声明 @interface NewClassName: ParentClassName { 实例变量 ... } 方法的声明 ... @end //...表示省略 ...
- MS-sqlserver数据库2008如何转换成2000
http://bbs.csdn.net/topics/390438560?page=1#post-394316973 MS-sqlserver数据库2008如何转换成2000 回你这个贴等于我写个博客 ...
- MySQL中concat函数
MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...
- MyEclipse------如何连接MySQL
testconnection.jsp <%@ page language="java" import="java.util.*" pageEncoding ...
- Lua函数之一
LUA函数之一 函数声明: function foo(arguments) statements end 1.函数调用 调用函数的时候,如果参数列表为空,必须使用()表明是函数调用,例如: os.da ...
- 配置 Apache+php多端口多站点(转载)
配置httpd.conf监听多个端口 #增加监听端口 等以下内容都设置以后,可以通过 netstat -n -a查看端口是否开启 开启虚拟站点 # Virtual hosts#Include conf ...
- Random.nextint() 和Math.random()的区别
Random.nextint() 和Math.random()的区别 Java代码 Random rand = new Random(); long startTime = System.nano ...
- 关于angularjs 中自定义过滤器
包子认为,在angularjs中,经常需要用到自定义过滤器,来过滤相应的功能,自定义过滤器非常的简单,我就直接贴代码啦 其中input就是你需要进行操作的对象,,,用法就直接就是 是不是很easy.. ...