[修饰符列表] 构造方法名(形式参数列表){
构造方法体;
}
普通方法语法结构:[修饰符列表] 返回值类型 方法名(形式参数列表){
方法体;
}
对于构造方法来说,“返回值类型”不需要指定,并且也不需要void,写上void就属于普通方法!构造方法的方法名必须要和类名保持一致。
构造方法的作用? 通过构造方法,可以创建对象 构造方法调用? 普通方法:方法修饰符中有static的时候》类名.方法名(实参列表);方法修饰符列表中没有static的时候》引用.方法名(实参列表) 构造方法:new 构造方法名(实参列表) 构造方法调用执行后有返回值吗? 每一个构造方法执行行结束之后都有返回值,但是这个“return 值;”不需要写,构造方法结束的时候java程序自动返回值。并且返回值类型是构造方法所在的类的类型。 构造方法User:public class User {
public User() {
System.out.println("鳄鱼君");
}
}
调用User:public class ConstructorTest {
/**
* @param args
*/
public static void main(String[] args) {
//调用User类的构造方法来完成对象的创建
new User();// 执行构造方法
}
}
当一个类中没有定义任何构造方法的时候,系统默认给该类提供一个无参数的构造方法,这个构造方法称为缺省构造器
当一个类显示的构造方法定义出来的时候,呢么系统则不再默认为这个类提供缺省构造器,建议手动为当前类提供无参数构造的方法public class User {
public User(){
System.out.println("无参数构造方法");
}
// 定义一个带参数的构造方法
public User(String name){
System.out.println("欢迎回来 :" + name);
}
}
public class ConstructorTest {
/**
* @param args
*/
public static void main(String[] args) {
//调用带参数的构造方法
new User("鳄鱼君");// 执行构造方法
new User();
}
}
构造方法支持重载机制,在一个类当中编写多个构造方法,这多个构造方法已经构成方法重载机制public class User {
public User() {
System.out.println("无参数构造方法");
}
// 定义一个带参数的构造方法
public User(String name) {
System.out.println("带有String参数的构造器");
}
public User(int name) {
System.out.println("带有int参数的构造器");
}
public User(int i, String name) {
System.out.println("带有int,String参数的构造器");
}
}
public class ConstructorTest {
/**
* @param args
*/
public static void main(String[] args) {
//创建User对象
User u1 = new User();
User u2 = new User("鳄鱼君");
User u3 = new User(10);
User u4 = new User(10,"鳄鱼君");
}
}
构造方法的另一个作用:创建对象的同时,初始化实例变量的空间//用户类
public class User {
// 无参数构造方法
public User() {
// 初始化实例变量的内存空间
// 相当于
num = 0;
name = null;
age = 0;
}
// 有参数构造器
public User(int a, String b, int c) {
num = a;
name = b;
age = c;
}
// 学号
public int num;
public void setNum(int num) {
if (num < 0 || num > 100000) {
return;
}
this.num = num;
}
public int getNum() {
return num;
}
// 姓名
public String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
// 年龄
public int age;
public void setAge(int age) {
if (age < 0 || age > 100) {
return;
}
this.age = age;
}
public int getAge() {
return age;
}
}
public class ConstructorTest {
/**
* @param args
*/
public static void main(String[] args) {
// 创建一个user1对象
// 查看对象访问的是那个属性:Ctrl + 鼠标移到该方法上单击
User user1 = new User();
// user1.setNum(1110); Ctrl + 鼠标放到setNum上单击
System.out.println("学号:" + user1.num);// 0
System.out.println("姓名:" + user1.name);// null
System.out.println("年龄:" + user1.age);// 0
User user2 = new User(10201,"鳄鱼君",18);
// user1.setNum(1110); Ctrl + 鼠标放到setNum上单击
System.out.println("学号:" + user2.num);// 10201
System.out.println("姓名:" + user2.name);// 鳄鱼君
System.out.println("年龄:" + user2.age);// 18
}
}
声明:1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!