面向对象之构造方法

一、构造方法的定义与作用

1.1  定义

      构造方法是没有返回类型的方法,方法名与类名相同

1.2  作用

     因为   构造方法不能被主动调用,只能被动的调用,构造方法是再对象创建时自动调用并执行。所以    适合于在对象被创建时初始化对象成员

二、构造方法的语法

2.1 语法

【修饰符】  类名 (形参1,形参......){

         构造方法体

 }

快捷键   Alt+Insert  或者  Fn+Alt+Insert

public class Circle {
    //属性
    double r;    //半径


    //构造方法
    public Circle(double r) {
        this.r = r;
    }

    //方法1  返回圆的面积
    public double area(){
        return 3.14*r*r;
    }
    //方法1  返回圆的周长
    public double round(){
        return 2*3.14*r;
    }

2.2 默认的构造方法

【修饰符】类名(){

}

public class Circle {
    //属性
    double r;    //半径


    //默认构造方法
    public Circle() {

    }

    //方法1  返回圆的面积
    public double area(){
        return 3.14*r*r;
    }
    //方法1  返回圆的周长
    public double round(){
        return 2*3.14*r;
    }

}

三、构造方法的重载(Overload)

3.1 概念

      一般情况下,每个类都有一个或多个构造方法,但由于构造方法与类名相同,所以当一个类有多个构造方法时,则这多个构造方法就可以重载。

3.2 案例

public class Goods {
    //定义一个商品类,编号,名称,价格,描述
    int id;
    String name;
    double price;
    String describe;

    //四个参数的构造函数,用户对这个4个属性进行赋值
    public Goods(int id, String name, double price, String describe) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.describe = describe;
    }

    //三个参数的构造方法 用户对这3个属性初始化赋值
    public Goods(String name, double price, String describe) {
        this.name = name;
        this.price = price;
        this.describe = describe;
    }

    //无参构造
    public Goods() {
    }
}

四、构造方法与一般方法的区别

4.1 构造方法

        构造方法在对象创建时就被执行了,而且只执行一次

4.2 一般方法

       一般方法在对象创建后,需要使用时才被对象调用,并可以被多次调用

五、对象数组

5.1 概念

      数组也可以来存放对象,因此,也可以将对象数组作为参数传递到方法中

5.2 案例

 

/**
 * 1、定义一个商品类,编号,名称,价格,描述
 * 2、定义一个构造函数,用户对这个4个属性进行赋值
 * 3、定义一个商品的对象数组,长度为5
 * 4、创建5个商品对象,并且放入对象数组中
 * 5、使用循环将对象数组中的每个商品都输出出来
 * 6、使用冒泡排序将商品数组按照价格进行升序排序
 * 7、使用循环将对象数组中的每个商品都输出出来
 */

public class Goods {
    //定义一个商品类,编号,名称,价格,描述
    int id;
    String name;
    double price;
    String describe;

    //四个参数的构造函数,用户对这个4个属性进行赋值
    public Goods(int id, String name, double price, String describe) {
        this.id = id;
        this.name = name;
        this.price = price;
        this.describe = describe;
    }

    public static void main(String[] args) {
        //定义一个商品的对象数组,长度为5
        Goods[] good = new Goods[5];

        //创建5个商品对象,并且放入对象数组中
        Goods a1 = new Goods(1, "手机", 5000.0, "通讯工具");
        Goods a2 = new Goods(2, "水杯", 30, "用来喝水");
        Goods a3 = new Goods(3, "笔记本", 6050.5, "工作设备");
        Goods a4 = new Goods(4, "Java程序设计基础", 69, "学习书籍");
        Goods a5 = new Goods(5, "jacket", 169, "上衣外套");

        good[0] = a1;
        good[1] = a2;
        good[2] = a3;
        good[3] = a4;
        good[4] = a5;

        //使用循环将对象数组中的每个商品都输出出来
        for (Goods s:good) {
            System.out.println(s.id+"\t"+s.name+"\t"+s.price+"\t"+s.describe);
        }

        System.out.println("************************排序************************");
        //使用冒泡排序将商品数组按照价格进行升序排序
        for (int i = 0; i < good.length; i++) {
            for (int j = 0; j < good.length-i-1; j++) {
                if(good[j].price > good[j+1].price){
                    Goods temp = good[j+1];
                    good[j+1] = good[j];
                    good[j] = temp;
                }
            }
        }

        //使用循环将对象数组中的每个商品都输出出来
        for (Goods s:good) {
            System.out.println(s.id+"\t"+s.name+"\t"+s.price+"\t"+s.describe);
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值