2019年1月15日,面向对象-参数、构造方法、方法重载作业

java文件分享地址:

链接:https://pan.baidu.com/s/18YothzcjSwJw1vfnhOF5eg
提取码:abim
复制这段内容后打开百度网盘手机App,操作更方便哦

 

作业1:实现简易计算器,分别实现两个整数、三个浮点数的加法运算

编写代码如下:

此为创建的计算器类:

public class Sum {
    public int sum(int a, int b){
        int s = a+b;
        return s;
    }
    public double sum(double c1, double c2, double c3){
        double s = c1+c2+c3;
        return s;
    }
}

此为创建的计算器的测试类:

 

import java.util.*;

public class TestSum {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Sum sum = new Sum();
        System.out.print("请输入第一个整数:");
        int a = input.nextInt();
        System.out.print("请输入第二个整数:");
        int b = input.nextInt();
        int result1 = sum.sum(a,b);
        System.out.println("两个整数的和为:"+result1);

        System.out.print("请输入第一个浮点数:");
        double c1 = input.nextDouble();
        System.out.print("请输入第二个浮点数:");
        double c2 = input.nextDouble();
        System.out.print("请输入第三个浮点数:");
        double c3 = input.nextDouble();
        double result2 =sum.sum(c1,c2,c3);
        System.out.println("三个浮点数之和为:"+result2);

    }
}

输出结果为:

请输入第一个整数:6
请输入第二个整数:8
两个整数的和为:14
请输入第一个浮点数:5.2
请输入第二个浮点数:6.2
请输入第三个浮点数:8.5
三个浮点数之和为:19.9

 

作业二:解释如下代码输出结果的原因

代码为:

此为MobilPhone的创建类

public class MobilPhone {
    public String brand;
    public MobilPhone(){
        this.brand = "诺基亚";
    }
    public MobilPhone(String bra){
        this.brand = bra;
    }
    public String buy(){
        return "没发工资,买一个"+brand+"牌子的手机吧!";
    }
    public String buy(String reason){
        return reason+",快买一个"+brand+"牌子的手机吧!";
    }

}

此为MobilPhone类的测试类:

public class MobilPhoneTest {
    public static void main(String[] args) {
        MobilPhone mp = new MobilPhone();
        mp.brand = "苹果";                            //发工资了,修改品牌属性
        String detail = mp.buy("发工资啦");     //发工资了,调用带参数的构造方法;
        System.out.println(detail);
    }
}

输出结果为:

发工资啦,快买一个苹果牌子的手机吧!

上题输出结果的原因为:

MobilPhone mp = new MobilPhone();此行代码创建新的MobilPhone对象为mp,虽然调用了无参构造方法,将brand属性赋值为诺基亚,
但是mp.brand = "苹果";此行代码又重新将对象的brand属性赋值为“苹果”;

String detail = mp.buy("发工资啦"); 此行代码是调用了普通有参buy的方法,参数为"发工资啦",并通过detail接收了该有参方法的返回值,
所以最后输出的结果为“发工资啦,快买一个苹果牌子的手机吧!”

课堂笔记:

方法调用处,参数叫做实际参数,也叫实参;
实参名字可以随便取,遵循驼峰命名规则,并要求有意义;
实参和形参类型必须一致,名字可以一致,也可以不一致;
方法有没有返回值,和有没有参数,没有任何关系;
方法参数可以是一个,也可以是多个,多个参数之间用逗号隔开(在形参和实参都是这样);
形参和实参数量一定要一致,数据类型一定要一致;
传的参数顺序要与定义的方法参数顺序一致;

方法传参
基本数据类型和引用数据类型在传参时区别;
1、当参数传递为基本数据类型时,参数变化不保留; 基本数据类型参数传值
2、当参数传递为引用数据类型时,参数变化会保留;引用数据类型参数传址
基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。引用数据类型(类、数组、接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个应用
对象数组作参数
无论数组的变量类型为int、chardouble、boolean均为引用数据类型;包括自定义数剧类型数组;

构造方法
1、该方法缺少返回值;例:public Student(){}
2、该方法名字必须和类名一样

构造方法的作用是创建对象!

构造方法重载
构造方法重载:在同一个类中
1、方法名相同
2、参数项不同   //包括:参数个数不同,参数类型不同
3、与返回值类型、访问修饰符无关
此时系统不再提供默认无参构造方法

public Student(){}  //无参构造方法
public Student(String name,int age){}  //有参构造方法
以上两个方法同名,但是一个无参,一个有参,可以同时出现在一个类里;

每个类都有一个默认无参构造方法,但是手工添加了带参构造方法,那么系统默认的无参构造方法就被覆盖掉了,你想使用,必须显示的写出来


成员变量和局部变量:
成员变量作用域:在整个类的内部;
局部变量作用域:在定义它的方法中;

成员变量的初始值:系统会给默认初始值
局部变量的初始值:需要我们自己给赋值;

在同一个方法中,不能有同名的局部变量
在同一个类中,成员变量可以和局部变量名相同,但是局部变量优先级更高

 

posted @ 2019-01-15 16:05  BOZHU-liu  阅读(285)  评论(0编辑  收藏  举报