Java学习笔记----构造方法

如果需要实例化新的对象,需要使用关键字new来解决,但是除了new这个关键字之外,还有可能在对象实例化时为其进行一些初始化的准备操作,这时就需要构造方法的支持。构造方法本身是一种特殊的方法,他只在新对象实例化的时候调用,其定义原则为:方法名称和类名称相同,没有返回值类型声明,以进行重载。

例.定义构造方法

class Book{
    /**
     * Book类无参构造方法
     */
    public Book(){           //构造方法
        System.out.println("*******************");
    }
}
public class Test{
    public static void main(String args[]){
        Book book = null;      //声明对象不调用构造
        book = new Book();     //实例化对象调用构造
    }
}
*******************

构造方法的主要功能是进行对象初始化操作,因此如果希望在对象实例化时进行属性的赋值操作,则可以使用构造方法完成

例.利用构造方法为属性赋值

class Book{
    private String title;
    private double price;
    /**
     * Book类构造方法,用于设置title和price属性的内容
     * @param t title
     * @param p price
     */
    public Book(String t,double p){
        setTitle(t);
        setPrice(p);
    }
    public void setTitle(String t){
        title = t;
    }
    public void setPrice(double p){
        price = p;
    }
    public String getTitle(){
        return title;
    }
    public double getPrice(){
        return price;
    }
    public void getInfo(){
        System.out.println("图书名称:" + title + "; 价格: " + price);
    }
}


public class TestDemo{
    public static void main(String args[]){
        Book book = new Book("Java开发",69.8);  //声明并实例化对象
        book.getInfo();                        //调用方法
    }
}
图书名称:Java开发; 价格: 69.8

注:构造方法的核心作用:在类对象实例化时设置属性的初始化内容

一个良好的编写顺序:首先编写属性(必须封装,同时提供setter、getter的普通方法),然后编写构造方法,最后编写普通方法

构造方法本身也属于方法,所以可以针对构造方法进行重载

例.构造方法重载

class Book{
    private String title;
    private double price;
    /**
     * Book类无参构造方法
     */
    public Book(){
        System.out.println("无参构造");
    }
    public Book(String t){
        setTitle(t);
        System.out.println("一个参数的构造");
    }
    public Book(String t,double p){
        setTitle(t);
        setPrice(p);
        System.out.println("两个参数的构造");
    }
    public void setTitle(String t){
        title = t;
    }
    public void setPrice(double p){
        price = p;
    }
    public String getTitle(){
        return title;
    }
    public double getPrice(){
        return price;
    }
    public void getInfo(){
        System.out.println("图书名称:" + title + ";价格:" + price);
    }
}

public class TestDemo{
    public static void main(String args[]){
        Book book = new Book("Java开发");
        book.getInfo();
    }
}
一个参数的构造
图书名称:Java开发;价格:0.0

和主类中的方法不同,对Book类中的三次重载,在主类中单次只能引用一次

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值