ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

自学java第二十三天

2021-08-14 22:33:22  阅读:155  来源: 互联网

标签:java 第二十三 构造方法 int age 默认 自学 public name


Java构造方法
当新对象被创建的时候,构造方法会被调用。每一个类都有构造方法。当类中没有定义构造函数时,系统会指定给该类加上一个空参数的构造函数。这个是类中默认的构造函数。当类中如果自定义了构造函数,这时默认的构造函数就没有了。

Java中构造方法重载和方法重载很相似。可以为一个类创建多个构造方法。每一个构造方法必须有它自己唯一的参数列表。

Java不支持像C++中那样的复制构造方法,这个不同点是因为如果你不自己写构造方法的情况下,Java不会创建默认的复制构造方法。

构造方法的方法名必须与类名相同

构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。

构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。

一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。

构造方法可以重载,以参数的个数,类型,顺序。

构造方法是一个特殊的方法。
方法结构:
访问修饰符 类名(参数列表){方法体}

构造方法重载。
在没写构造方法是 有一个默认的
类名(){}构造方法

this()是调用本类不带参构造方法;
super()是调用父类不带参的构造方法;

构造方法和方法的类似之处在于它们都包含可执行代码,区别在于,只有当Java类实例化时才执行构造方法。构造方法通常包含类属性初始化代码,从严格意义上说,构造方法并不是方法,因为它不会返回任何值。

public class A{
int i=0;
public A(){
i=2;
}
public A(int i){
this.i=i;
}
}
默认构造方法
如果没有任何的构造方法,编译时系统会自动添加一个默认无参构造方法
1.隐含的默认构造方法

public A(){}
1
2.显示的默认构造方法

public A(){
System.out.print("显示的默认构造方法")
}
重载构造方法
比如原本的类里的构造方法是一个参数的,现在新建的对象是有三个参数,此时就要重载构造方法
当一个类中有多个构造方法,有可能会出现重复性操作,这时可以用this语句调用其他的构造方法。

public class A{
private int age;
private String name;
public A(int age,String name){
this.age=age;
this.name=name;
}
public A(int age){
this(age,"周杰伦");//调用 A(int age,String name)构造方法
}
public A(){
this(1);//调用 A(int age)构造方法
}
public void setName(String name) {this.name=name;}
public String getName() {return name;}
public void setAge(int age) {this.age=age;}
public int getAge() {return age;}
}
A a=new A(20,"邓紫棋");
A b=new A(20);
A c=new A();
String name = a.getName();
String name1 = b.getName();
int age = c.getAge();
System.out.println(name);
System.out.println(name1);
System.out.println(age);

标签:java,第二十三,构造方法,int,age,默认,自学,public,name
来源: https://www.cnblogs.com/wyq134214/p/15142076.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有