java 对象和类:成员变量&成员方法


 

类是对象的属性和行为的载体。

对象的属性——类的成员变量

对象的行为——类的成员方法 

class 类的名称{
//类的成员变量  可不设初始值,默认为:0,0.0,'',null,false。
//类的成员方法
[权限修饰符][返回值类型]方法名 ([参数类型 参数名])[throws 异常类型]{
//方法体
……
return 返回值;
}
}

方法

权限修饰符

private

public

protected

为空:只在本类及同一个包中的类进行访问

返回值类型

如果无返回,则使用关键字void。

成员方法的参数

形参:在方法内部接收实参的变量;实参:传给方法的值

 值参数:表示形参和实参之间按值传递。形参的改变,不影响实参的值。

引用参数:被调用后,原值被修改的参数 ,如下面的usd即为引用参数

不定长参数:声明方法时使用,格式:参数类型… 参数名称

 

引用参数

public class ExchangeRate { // 创建汇率类

    public static void main(String[] args) {
        ExchangeRate exr = new ExchangeRate();
        double[] usd = {1, 100, 1000};
        System.out.println("美元记录:");
        exr.printList(usd, "美元");//调用打印方法
        exr.exChange(usd);//调用兑换方法
        System.out.println("兑换完毕:");
        exr.printList(usd, "元");//调用打印方法

    }

    public void exChange(double[] usd) {  //引用参数后值被更改
//        兑换
        for (int i = 0; i < usd.length; i++) {
            usd[i] = usd[i] * 6.903;
        }
        return usd;
    }

    public void printList(double[] usd, String unit) {
//        打印list
        for (int i = 0; i < usd.length; i++) {
            if (i == usd.length - 1) {
                System.out.println(usd[i] + unit);//最后一个换行打印
            } else {
                System.out.print(usd[i] + unit + " "); //非最后一个不换行打印
            }

        }
    }
}

 

import javax.jws.soap.SOAPBinding;
import java.util.Scanner;

public class BuyBooks {

    public static void main(String[] args) {
        BuyBooks bb = new BuyBooks();
        System.out.println("1  《A》 59.8/n2  《B》 69.8/n3  《C》 20.0/n4  《D》 40.0/n请输入预购买的序号:使用,隔开");
        Scanner sc = new Scanner(System.in);
        do {
            String nums = sc.next();
            if (nums.equals("0") ) {
                System.out.println("over");
                break;
            } else {
                String[] numlist = nums.split(",");//字符串转为数组

                int[] num = bb.getNum(numlist);//将输入的字符串转为int数字

                double sum = bb.disCount(num);//计算付费金额
                System.out.println("您要购买的有:【" + nums + "】,共计:" + sum + "元");
            }
        } while (true);


    }

    public int[] getNum(String[] numlist) {
        //将数组中的字符串转int数字
        int[] num = new int[numlist.length];
        for (int i = 0; i < numlist.length; i++) {
            num[i] = Integer.parseInt(numlist[i]); 
        }
        return num;
    }

    public double getPrice(int num) {
        // 通过序号获取价格
        double price = 0;
        switch (num) {
            case 1: {
                price = 59.8;
                break;
            }
            case 2: {
                price = 69.8;
                break;
            }
            case 3: {
                price = 20.0;
                break;
            }
            case 4: {
                price = 40.0;
                break;
            }
            default: {
                price = 0;
            }
        }
        return price;
    }


    public double disCount(int[] num) {
        //满2件5折,第单数件原价
        double sum = 0.0;
        for (int i = 0; i < num.length; i++) {
            if (num.length % 2 == 0) { //总件数为双数,均打折
                sum += BuyBooks.this.getPrice(num[i]) / 2;  //方法调用其他方法

            } else {
                if (i == num.length - 1) { //总件数为单数,最后一个不打折
                    sum += BuyBooks.this.getPrice(num[i]);
                } else {
                    sum += BuyBooks.this.getPrice(num[i]) / 2;
                }

            }

        }
        return sum;
    }
}

 

不定长参数

public class Test {
    public static void main(String[] args) {
        Test test = new Test();
        int sum = test.add(10,20,33,44,55);
        System.out.println("sum");
    }
    public int add(int... x) {
        int sum = 0;
        for (int i = 0; i < x.length; i++) {
            sum += x[i];
        }
        return sum;
    }

 

原创文章,作者:254126420,如若转载,请注明出处:https://blog.ytso.com/272570.html

(0)
上一篇 2022年7月9日
下一篇 2022年7月9日

相关推荐

发表回复

登录后才能评论