构造方法

构造方法又被称为构造函数/构造器/Constructor

构造方法语法结构:
  [修饰符列表] 方法名 [形式参数列表]

普通方法语法结构:

  [修饰符列表]  返回值类型 方法名 [形式参数列表]

对于构造方法来说“返回值类型”不需要指定,并且也不能写void 只要写上void那么就是普通方法了

构造方法的方法名必须和类名保持一致

构造方法的作用 :构造方法存在的意义通过构造方法的调用可以创建对象

构造方法怎么调用?

  new 构造方法名(实参列表)

  在创建对象的时候用的关键字是new :Student s=new Student();

  普通方法调用:方法中有static:类名.方法名(实参列表)  方法中没有static:引用.方法名(实参列表) 

构造方法调用执行之后有返回值吗

  每一个构造方法实际上执行结束之后都有个返回值但是这个return值这样的语句不需要写  构造方法结束的时候java程序自动返回值并且返回值类型是构造方法所在类的类型 。由于构造方法返回值类型就是本身所以返回值类型不需要编写。

在一个类中如果不写构造方法(无参构造方法),类本身默认会创建缺省构造器(无参构造方法)

当在一个类中没有写构造方法那么在执行调用的时候输出的就是一个内存地址调用的是默认的构造方法没有参数

当一个类中将构造方法定义出来了那么系统就不在默认为这个类提供缺省构造器(无参构造方法),建议手动的为当前提供无参数构造方法

构造方法支持方法重载,在一个类当中编写多个构造方法,这多个构造方法就构成了方法重载。

package com.yh.test04;

public class ConstructorTest {
public static void main(String[] args) {
ConstructorTest.doSome();
doSome();
ConstructorTest c=new ConstructorTest();
c.doOther();
}
public static void doSome(){
System.out.println("doSome()方法执行");
}
public void doOther(){
System.out.println("doOther()方法执行");
}
}

 

package com.yh.test05;

public class Test {

public static void main(String[] args) {
User u =new User(20);
add(u);
System.out.println("main方法的age是:"+u.age);

}

private static void add(User u) {
u.age++;
System.out.println("add方法的age是:"+u.age);
}

}
class User{

int age;
public User(int i){
age=i;
}


}

 

 

 

 

package com.yh.test05;
public class Test01{
public static void main(String[] args) {
int i=20;
add(i);
System.out.println("main方法的i的数据是:"+i);
}

private static void add(int i) {
i++;
System.out.println("add的方法的i的数据是:"+i);
}
}

 

 

 

 

 

====================

package com.yh.test03;

public class Date {
int year;
int momth;
int day;
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public int getMomth() {
return momth;
}
public void setMomth(int momth) {
this.momth = momth;
}
public int getDay() {
return day;
}
public void setDay(int day) {
this.day = day;
}
public Date(int year, int momth, int day) {
// super();
this.year = year;
this.momth = momth;
this.day = day;
}
public Date() {
/*this.year=1999;
this.momth=2;
this.day=2;*/
this(1999,9,9);
}

}


package com.yh.test03;

public class Test {

public static void main(String[] args) {
Date d1=new Date();
Date d=new Date();
d.year=2019;
d.momth=12;
d.day=13;
System.out.println(d1.getYear()+"-"+d1.getMomth()+"-"+d1.getDay());

System.out.println(d.getYear()+"-"+d.getMomth()+"-"+d.getDay());
}

}

posted @ 2019-12-12 11:54  动起来mygod  阅读(743)  评论(0)    收藏  举报