java构造方法之我见
java中构造方法是作为除了成员方法之外的一种特殊方法,方法名与类名相同。一般类中如果没有明确定义构造方法时,编译器默认为无参构造方法。当我们调用new方法创建对象就是通过构造方法完成的。因此,当有对象被创建,就有构造方法被调用。构造方法的作用即为初始化对象。构造方法的基本特点如下:
1、没有返回值。且不能用void修饰。
2、名称与类一致。
构造方法可以是无参的,也可以是带参数的,为成员变量赋值。
子类与父类之间的构造方法:
我们知道调用一个类有两种方法,一是继承,二是组合(new);不管是哪种调用方式,都会运行构造函数。当涉及继承时,子类必须调用父类的构造方法,当父类为无参的构造方法时,可以隐式的调用父类默认的构造方法(可省略super(),java默认添加该语句);当父类的构造方法带有参数时,则需要在子类构造方法中明确写出用super()语句调用父类构造方法,且必须在构造方法的首句声明调用。举个例子:
package kindobject;
public class Test10 extends Test9{
public Test10(int a){
super(2);
int a2=a;
System.out.printf("a2\n"+a2);
}
public static void sleep(test9 b){
System.out.printf("i'm still sleeping!");
}
public static void main(String args[]){
test10 f=new test10(1);
run();
System.out.printf("\n");
sleep(f);
}
}
class Test9{
public Test9(int a){
int a1=a;
System.out.printf("a1"+a1);
}
public static void run(){
System.out.printf("i'm running!");
}
public static void sleep(test9 b){
System.out.printf("i'm sleeping!");
}
}
上述程序中,父类的构造方法是带参数的,因此必须在子类的构造方法中明确调用,且必须在首句,其中之一不满足,便会报错。
java构造方法之我见的更多相关文章
- Java构造方法与析构方法实例剖析
Java构造方法 类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量.在创建对象时,会自动调用类的构造方法. 构造方法定义规则:Java 中的构造方法必须与该类具有相同的名字,并且 ...
- Java 构造方法总结
Java 构造方法总结 ①方法名和 类名相同 ②在方法名的前面没有返回值类型的声明 ③在方法中不能使用return语句返回一个值 ④在创建对象时,要调用new,如:book b1=new book() ...
- 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构造方法的访问修饰符
http://my.oschina.net/u/1464678/blog/210359 1. 类(class) 可见性修饰符: public—在所有类中可见,在其他包中可以用import导 ...
- Java构造方法、成员变量初始化以及静态成员变量初始化三者的先后顺序是什么样的?
[Java笔试真题]:构造方法.成员变量初始化以及静态成员变量初始化三者的先后顺序是什么样的? [解答]:当类第一次被加载的时候,静态变量会首先初始化,接着编译器会把实例变量初始化为默认值,然后执行构 ...
- java 构造方法详解
构造方法(构造器) 是一种特殊的方法,该方法只有功能:构造对象 特点: 1.没有返回值 2.构造方法的名称一定和类名一致 3.不能在构造方法中写r ...
- Java——构造方法和匿名对象
前言 在编写程序时不安全的初始化会导致程序发生发生重大错误.为了使程序可以被安全地初始化,C++引入了构造器(也可以成为构造方法)的概念,这是一个在创建对象时被自动调用的特殊方法.Java中也采用了构 ...
- JAVA构造方法与方法是啥意思,方法重载方法覆盖俗谈
构造函数跟构造方法是一样的,只是称呼不同; C语言里叫函数,Java里叫方法. 成员方法必须有返回类型即使是没有返回,也要写上void 构造方法没有返回类型,而且和类名一样!一个类里面,一看就知道了譬 ...
随机推荐
- bzoj1042硬币购物——递推+容斥
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1042 递推,再用容斥原理减掉多余的,加上多减的……(dfs)即可. 代码如下: #includ ...
- C#工程引用dll如何配置
C#工程引用需要注意的事项: <ItemGroup Condition="'$(Configuration)|$(Platform)' == &a ...
- jmeter 开发自己的java请求 二次开发
package test; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient. ...
- Getting Started with OpenMP
Getting Started with OpenMP* Abstract As you probably know by now, to get the maximum performance be ...
- 教程:动手用自己电脑搭建一个网站 (nat123 花生壳 动态域名 个人电脑做服务器)
先ps一下..今晚试了N种方法,终于找到一个靠谱 免费 好用的方法,来改装自己电脑成为服务器,在外网也能通过域名访问了!!! 需要准备的东西: Tomcat:这个是web容器,其实有了这个就已经让电脑 ...
- Photoshop CC 智能切图功能介绍
http://gdc.qq.com/ http://gdc.qq.com/?p=4445
- 有关Linux的.a、.so和.o文件---mark一下(转)
gcc 生成 .a静态库和 .so动态库 (转载) 我们通常把一些公用函数制作成函数库,供其它程序使用.函数库分为静态库和动态库两种.静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该 ...
- 特性attribute,声明和使用attribute,应用attribute,AOP面向切面,多种方式实现AOP
1 特性attribute,和注释有什么区别2 声明和使用attribute3 应用attribute4 AOP面向切面5 多种方式实现AOP ---------------------------- ...
- 30个Python物联网小实验3:使用按钮开灯关灯
使用按钮开灯关灯 接线图非常简单,LED接GPIO17号口,按钮接GPIO2号口,负极接GND地线. 代码也非常简单: from gpiozero import LED, Button from si ...
- 模板 - 动态规划 - 区间dp
因为昨天在Codeforces上设计的区间dp错了(错过了上紫的机会),觉得很难受.看看学长好像也有学,就不用看别的神犇的了. 区间dp处理环的时候可以把序列延长一倍. 下面是 $O(n^3)$ 的朴 ...