构造方法及其调用
来源:互联网 发布:python和node.js 编辑:程序博客网 时间:2024/05/19 20:40
构造方法知识点:
1、构造方法就是实例化对象时调用的方法,构造方法的调用是在创建一个对象时使用new操作进行的,用于完成对象的初始化工作。
2、当类定义中的构造方法都不是无参数构造方法时,编译器也不会为类设置一个默认的无参数构造方法。如果此时无参数构造方法实例化一个对象,编译器
会报错。只有当类中没有定义任何构造方法时,编译器才会自动创建一个不带参数的构造方法。
3、一个类被实例化的同时就会自动运行相应的构造方法,即便你不写,系统也会创建一个默认的构造方法。
4、在构造方法里可以调用除自身外的其他方法(静态的非静态的都可以)。
一、在同一个类中
调用1
Test2.java
package Test6;
public class Test2 {//无参数构造方法
public Test2(){
System.out.println("调用了我1");
}
//具有两个参数的构造方法
public Test2(String s,int a){
System.out.println("调用了我2");
}
//具有可变数量参数的构造方法
public Test2(String...strings){
System.out.println("调用了我3");
}
public static void main(String[] args) {
//实例化对象Test2.调用无参数构造方法
Test2 test2=new Test2();
}
}
程序运行结果:
调用2
Test2.java
package Test6;
public class Test2 {
//无参数构造方法
public Test2(){
System.out.println("调用了我1");
}
//具有两个参数的构造方法
public Test2(String s,int a){
System.out.println("调用了我2");
}
//具有可变数量参数的构造方法
public Test2(String...strings){
System.out.println("调用了我3");
}
public static void main(String[] args) {
//实例化对象Test2.调用无参数构造方法
Test2 test2=new Test2("1",2);
}
}
程序运行结果:
调用3
Test2.java
package Test6;
public class Test2 {
//无参数构造方法
public Test2(){
System.out.println("调用了我1");
}
//具有两个参数的构造方法
public Test2(String s,int a){
System.out.println("调用了我2");
}
//具有可变数量参数的构造方法
public Test2(String...strings){
System.out.println("调用了我3");
}
public static void main(String[] args) {
//实例化对象Test2.调用无参数构造方法
Test2 test2=new Test2("1","2","3");
}
}
程序运行结果:
二、现在把无参数构造方法权限改为private
Test2.java
package Test6;
public class Test2 {//无参数构造方法
private Test2(){
System.out.println("调用了我1");
}
//具有两个参数的构造方法
public Test2(String s,int a){
System.out.println("调用了我2");
}
//具有可变数量参数的构造方法
public Test2(String...strings){
System.out.println("调用了我3");
}
public static void main(String[] args) {
//实例化对象Test2.调用无参数构造方法
Test2 test2=new Test2();
}
}
程序运行结果:
三、当实例化对象和构造方法不在同一个类中而且无参数构造方法的权限为public时
Test2.java
package Test6;
public class Test2 {
//无参数构造方法
public Test2(){
System.out.println("调用了我1");
}
//具有两个参数的构造方法
public Test2(String s,int a){
System.out.println("调用了我2");
}
//具有可变数量参数的构造方法
public Test2(String...strings){
System.out.println("调用了我3");
}
}
Main_00.java
package Test6;
public class Main_00 {
public static void main(String[] args) {
Test2 test2=new Test2();
}
}
程序运行结果
四、
当实例化对象和构造方法不在同一个类中而且无参数构造方法的权限为private时
Test2.java
package Test6;
public class Test2 {
//无参数构造方法
private Test2(){
System.out.println("调用了我1");
}
//具有两个参数的构造方法
public Test2(String s,int a){
System.out.println("调用了我2");
}
//具有可变数量参数的构造方法
public Test2(String...strings){
System.out.println("调用了我3");
}
}
Main_00.java
package Test6;
public class Main_00 {
public static void main(String[] args) {
Test2 test2=new Test2();
}
}
程序运行结果
- 构造方法及其调用
- 构造方法及其重载
- JAVA构造方法及其重载
- 调用另一个构造方法
- 调用另一个构造方法
- 构造方法无法调用
- 【C#基础】方法及其调用、构造方法、out与ref参数及其返回值、方法重载、静态方法等简单介绍
- 【C#基础】方法及其调用、构造方法、out与ref参数及其返回值、方法重载、静态方法等简单介绍
- .NET中的方法及其调用
- 继承中的构造方法调用
- 构造方法的调用-要点
- 构造方法何时被调用
- 用this调用构造方法
- 构造方法重载和调用
- 使用this调用构造方法
- 构造方法的调用顺序
- 方法的调用 this方法 构造方法
- JAVA中StringBuffer的构造及其方法
- 条款23:宁以non-member、non-friend替换member函数
- 基本的语法
- 面对变化时,先别说NO
- URAL 1017. Staircases
- Java线程学习小结
- 构造方法及其调用
- sqlserver镜像(无域)
- Camera服务之--架构浅析
- Android 开发-碎文 四大组件
- Handler的用法
- [OJ]尼科彻斯定理
- Nginx 做负载均衡的几种轮询策略
- 2014年6月6日,六六大顺
- Mysql彻底卸载