Java-通过案例学习构造方法

之前在上一篇学习了面向对象中类和对象的介绍和使用,今天主要针对面向对象中的构造方法进行讲解,主要是通过案例的方式将之前学的和今天要学的进行一下综合,在讲解案例之前需要先初步的了解下构造方法的定义以及怎么创建。

补充一个小知识
在这里插入图片描述

一、构造方法的介绍

  将与类名同名的方法叫做构造方法,构造方法没有返回值
 

二、构造方法的注意事项

  1、构造方法的创建

  ①、如果没有定义构造方法,系统会给出一个默认的无参数的构造方法
  ②、如果定义了构造方法,系统将不再提供默认的构造方法
 

  2、构造方法的重载

  如果自定义了带参数的构造方法,还要使用手动创建无参的构造方法

      2.1、重载的条件

   ①、方法名相同 ②、参数列表不同
 

  3、推荐使用的方式

  无论是否使用,都手动书写无参构造方法和带参构造方法
 

三、构造方法的语法

public class Constroct{
	// 构造方法 函数名与类名一致
	public Constroct{
		// 构造方法
	}
}

四、案例讲解

 1、题目

  假设数据仓库库存有如下数据{“苹果”,“橘子”,“芒果”,“哈密瓜".“柚子”,“牛油果”,“车厘子",“鹰嘴桃”,“阳光提"},请设计一个类用于对数据操作。如:查询数据中是否有西梅
 

 2、题目分析

  根据题目分析:可以提取出一个有关水果的类,
  类中属性可以有:颜色color、名字name、价格price等。
  类中行为可以有:判断用户输入的水果在仓库中是否存在 findIsFruit
 

 3、代码分析


 水果类Fruit代码 :

 ①、需要定义一个数组 f[ ]存放仓库中已有的水果

 ②、通过循环 for依次取出数组中的水果

 ③、取出后做判断 if,如果跟用户输入的一致 .equals()则表示仓库中有这个水果,不一致则表示仓库中没有这种水果,最后不管有没有水果都需要返回结果给用户。

 ④、该类中需要使用带参的构造函数Fruit,由于构造方法的要求,创建带参的构造方法后还需要再写一个函数名也为Fruit的构造方法,不同的是第二次写的构造方法没有参数

 ⑤、带参构造方法中的参数与水果类中的属性一致,将得到的用户输入的属性赋值给该水果类的成员变量(全局变量)

 ⑥、代码展示

public class Fruit {

    String name;
    double price;
    String color;

    String f[] = {"苹果", "橘子", "芒果", "哈密瓜", "柚子", "牛油果"};

    // 判断是否有水果
    public boolean findIsFruit(String name) {
    // 定义一个flag用来接收最后的结果,如果仓库中有则为true,如果没有则为false
        boolean flag = true;
        for (int i = 0; i < f.length; i++) {
            if (f[i].equals(name)){
                System.out.println("仓库里有"+name);
                break; // 这里需要使用break关键字,不然循环会输出很多次
            }else{
                System.out.println("仓库中没有"+name);
                flag = false;
                break;
            }

        }
        return flag;
    }

    //todo 构造函数
    public Fruit() {

    }

    public Fruit(String name, String color, double price) {
        this.name = name;
        this.color = color;
        this.price = price;

    }
}


 用户输入类test1代码:

 ①、在main方法中编写全部代码
 ②、创建一个Fruit类对应的对象
 ③、创建一个变量接收水果类方法返回来的结果(Boolean类型)
 ④、打印结果
 ⑤、代码展示

public class test1 {
//    TODO 假设数据库存有如下数据{“苹果”,“橘子”,“芒果”,“哈密瓜”,“柚子”,“牛油”,
//     “车厘子”,“鹰嘴桃”,“阳光提”},请设计一个类用于对数据操作。如:查询数据中是否有西梅


    public static void main(String[] args) {
        Fruit fruit = new Fruit("苹果","red",38);
        // 调用Fruit类中查询仓库中是否有该水果的方法,需要传入参数
        boolean result = fruit.findIsFruit("葡萄");
        System.out.println(result);


    }


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值