类的构造函数
在面向对象程序中构造方法的主要作用是为类中的属性初始化。
在构造方法的声明中
1)构造方法的名称必须与类名称一致;
2)构造方法的声明处不能有任何返回值类型的声明;
3)不能在构造方法中使用return返回一个值。
4)构造方法可以重载。
package com.hiyo.Class;
//类的构造函数
//在面向对象程序中构造方法的主要作用是为类中的属性初始化。
//在构造方法的声明中
//(1)构造方法的名称必须与类名称一致;
// (2)构造方法的声明处不能有任何返回值类型的声明;
// (3)不能在构造方法中使用return返回一个值。
class Book {
private String bkname ;
private float bkprice ;
public void setBkname(String n) {
this.bkname = n ;
}
public void setBkprice(float p) {
this.bkprice = p ;
}
public String getBkname() {
return this.bkname;
}
public float getBkprice() {
return this.bkprice ;
}
//当调用关键字new实例化对象的时候才会调用构造方法。
//无任何返回值
//名称和类名称相同
//public Book(){} ;如果没有声明构造方法,会有一个什么都不做的构造方法
public Book(){
System.out.println("调用无参数构造方法");
System.out.println("产生一个BOOK对象");
}
//构造方法重载
public Book(String n) {
this.setBkname(n);
System.out.println("调用1参数构造方法");
System.out.println("产生一个BOOK对象");
}
//构造方法重载
public Book(String n, float a) {
this.setBkname(n);
this.setBkprice(a);
System.out.println("调用2参数构造方法");
System.out.println("产生一个BOOK对象");
}
public void tell() {
System.out.println("书名是"+this.getBkname() + "书的价格是:" + this.getBkprice()) ;
}
}
public class ConstructorDemo {
public static void main(String[] args) {
Book bk1 = new Book() ;
Book bk2 = new Book("Java",50.4f);
Book bk3 = new Book("C++");
}
}
“匿名对象”,就是没有明确给出名字的对象。一般匿名对象只使用一次,而且匿名对象只在堆内存中开辟空间,而不存在栈内存的引用。
public class ConstructorDemo {
public static void main(String[] args) {
Book bk1 = new Book() ;
Book bk2 = new Book("Java",50.4f);
Book bk3 = new Book("C++");
//匿名对象的使用
new Book("C#",60.5f).tell();
}