【java学习之路】(java SE篇)(练习)一些关于面向对象的题目与思考

题目一

//写出结果
public class Test {
    int i = 0;
    void change(int i){
        i++;
        System.out.println(i);
    }
    void change1(Test t){
        t.i++; 
        System.out.println(t.i);
    }
	
    public static void main(String[] args) {
        Test ta = new Test();  
        System.out.println(ta.i);
        ta.change(0);
        System.out.println(ta.i); 
        ta.change1(ta);  
        System.out.println(ta.i);
    }
 
}

回答:

public static void main(String[] args) {
        Test ta = new Test();
        System.out.println(ta.i);//0
        ta.change(0);//1
        System.out.println(ta.i);//0
        ta.change1(ta);//1
        System.out.println(ta.i);//1
    }

验证:

在这里插入图片描述

知识点总结详见

		1.引用传递与值传递
		引用传递:传递的不是对象的本身,而是引用对象的地址
		值传递:方法执行中形式参数的改变不影响实际参数的值*
		2.java方法调用
		3.类的基本结构

题目二

public class Dog {
      String name=null;
      int age = 10;
    public Dog() {
        this.name = "旺财";
        this.age = 20;
    }
    public void show(){
        System.out.println("名字:"+name+" 年龄:"+age);
    }
    public static void main(String[] args) {
        new Dog().show();
    }
}

回答

public static void main(String[] args) {
        new Dog().show();//旺财+20
    }

验证
在这里插入图片描述
** 知识点总结 **

		1.成员变量
	    2.构造方法

题目三

比较大小:分别利用重载,对两个int,两个double,三个int,三个double类型的数进行比较大小,返回其中较大的一个.

代码实现

public class Test{
    public void CompareNum(int a,int b){
        if(a>b){
            System.out.println(a);
        }else {
            System.out.println(b);
        }
    }

    public void CompareNum(double a,double b){
        if(a>b){
            System.out.println(a);
        }else {
            System.out.println(b);
        }
    }

    public void CompareNum(int a,int b,int c){
        if(a>b&&a>c){
            System.out.println(a);
        }else if(b>a&&b>c){
            System.out.println(b);
        }else {
            System.out.println(c);
        }
    }

    public void CompareNum(double a,double b,double c){
        if(a>b&&a>c){
            System.out.println(a);
        }else if(b>a&&b>c){
            System.out.println(b);
        }else {
            System.out.println(c);
        }
    }

    public static void main(String[] args) {
        Test test = new Test();
        test.CompareNum(5, 9);
        test.CompareNum(5.2, 9.1);
        test.CompareNum(5, 9, 16);
        test.CompareNum(5.2, 9.1, 16.8);
    }
}

运行结果
在这里插入图片描述

题目四

编程
定义一个中国邮政储蓄银行类,
属性:账号、密码、存款余额,银行名称。
方法:注册账号、存款、取款、查询。
创建该类对象并测试注册账号,存钱,取钱查询操作
要求:使用面向对象思想设计程序

代码
Bank类

package CarUp.Demo3;

import java.util.Scanner;

//编程
//        定义一个中国邮政储蓄银行类,
//        属性:账号、密码、存款余额,银行名称。
//        方法:注册账号、存款、取款、查询。
//        创建该类对象并测试注册账号,存钱,取钱查询操作
//        要求:使用面向对象思想设计程序
public class Bank {
    String id;
    String password;
    int money;
    static String bankName = "中国国家银行";



    public void ApplyId(){
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要申请的ID");
        this.id = sc.nextLine();
        System.out.println("ID申请成功");

        System.out.println("请输入要申请的密码");
        this.password = sc.nextLine();
        System.out.println("密码申请成功");
    }

    public void InMoney(){
        System.out.println("请输入存款金额");
        Scanner sc = new Scanner(System.in);
        money = sc.nextInt();
        this.money += money;
        System.out.println("存款成功");
        System.out.println("欢迎下次光临"+bankName);
    }

    public void OutMoney(){
        System.out.println("请输入取款金额");
        Scanner sc = new Scanner(System.in);
        money = sc.nextInt();
        this.money -= money;
        System.out.println("取款成功");
        System.out.println("欢迎下次光临"+bankName);
    }

    public void SearchMoney(){
        System.out.println(this.money);
    }

    public void PrintId(){
        System.out.println("您的账号是:"+this.id+"您的密码是:"+this.password);
    }
}

测试类

package CarUp.Demo3;

public class MoneyTest {
    public static void main(String[] args) {

        Bank bank = new Bank();
        bank.ApplyId();
        bank.PrintId();
        bank.InMoney();
        bank.OutMoney();
        bank.SearchMoney();
    }
}

运行截图
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值