ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

2022.07.19 第九小组 王茜 学习笔记

2022-07-19 19:00:07  阅读:139  来源: 互联网

标签:balance 19 System Person Debit 2022.07 王茜 public out


今天学习了this关键字以及封装和构造器。

1、this关键字
  this代表的是当前类的对象,this代表的是当前方法的调用者
  this既然是代表方法的调用者,它实际上和对象的作用是一样的
  既可以调属性,也可以调方法。

 2、 一个类中可以有什么?
  属性,方法,构造器
 
 3、this不能用在static方法中。

 4、开发中,this通常用在什么位置!
 通常用在赋值,构造器赋值。

  5、什么时候用构造器赋值?
 看创建对象是为了干什么?
 如果说创建对象仅仅是为了调用这个类的方法,建议使用无参构造器
 如果说创建对象的时候需要使用到对象的某个属性,可以使用构造器赋值

面向对象的特征:封装
 1、代码层面
   (1)属性私有化,所有的属性的都要使用private封装
   (2)提供一个共有的set、get方法
    getter方法能够按照客户的期望返回格式化的数据
    setter方法可以限制和检验setter方法传入的参数是否合法

 

 * 有一个person类,有name,age属性
 * 有一个Debit类,有cardID,password,balance属性
 * Person类有一个开户的方法,openAccount,in(余额增加),out(余额减少)
 * Person类有一个开户的方法,openAccount,in(余额增加),out(余额减少,
 *                  取款时要判断余额)
 * Debit类中有一个显示银行卡信息的方法。
 *
 * 赋值的方式:
 * 1.构造器(建议)
 * 2.直接通过.属性的方式赋值
 *
 * 分析:
 *  开户:给Person类的Debit属性赋值,Debit初始化时需要给cardId,password,balance赋值
 *  最终在Demo类中测试相关功能
 *
 *  加功能:键盘输入,存款和取款需要比对密码。
 *  加键盘输入:
 *  哪些地方是需要我们来输入的?
 *  1.密码,余额
 *  2.存多少钱
 *  3.取多少钱
 *
 *  在哪里写键盘输入Scanner写在哪里?
 *  Scanner应该出现在main里
 *

代码:1、public class Demo 

public class Demo
 public class Demo {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        Person person=new Person("张三",20);
        System.out.println("请选择功能:1、开户 2、存款  3、取款");
        String flag=sc.next();
        switch (flag){
            case "1":
                System.out.println("请输入账户密码");
                String password=sc.next();
                System.out.println("请输入余额:");
                double balance=sc.nextDouble();
                Debit debit=new Debit("6666666666","123456",100);
                person.openAccount(debit);
                break;
            case "2":
                System.out.println("请输入密码");
                int pass=sc.nextInt();
                boolean b=person.valid(pass);
                if(b){
                    System.out.println("请输入存款金额");
                    double money=sc.nextDouble();
                    person.in(money);
                }
               else {
                    System.out.println("密码有误");
                }
                break;
        }
    }
}

代码:2、 public class Person

public class Person
 public class Person {
    String name;
    int age;

    Debit debit;
    public Person(){

    }

    public  Person(String name,int age){
        this.name=name;
        this.age=age;
    }
    public void openAccount(Debit debit) {
        this.debit = debit;
        //开户成功
        debit.show();
        show();
    }
    public void in(double money){
        debit.balance+=money;
        System.out.println("存款成功,余额为:"+debit.balance);
    }
    public void out(double money){
        if(money<=debit.balance){
            debit.balance-=money;
            System.out.println("取款成功,余额为:"+debit.balance);
        }else {

        }
    }
    public  void show(){
        System.out.println("姓名:"+name+"年龄"+age);
    }
    public boolean valid(int pass) {
       return true;
    }
}

代码:3、public class Debit

public class Debit
 public class Debit {
    String carID;
    String password;
    double balance;
    public  Debit(){

    }
    public  Debit(String carID,String password ,double balance){
        this.carID=carID;
        this.password=password;
        this.balance=balance;
    }
    public void show(){
        System.out.println("卡号"+carID+"余额"+balance);
    }

}

 

 

今日感受:

        刚开始接受这个知识点的时候感到很懵,感觉有一点会,但大多数都是不会的,当老师留时间做题的时候,我只能写出最开始的那个小点,之后就一点头绪都没有,都是在老师讲过之后才有那种:原来是这样啊。

        虽然老师讲的很好,但是我接受新知识不好,学的不太好!

标签:balance,19,System,Person,Debit,2022.07,王茜,public,out
来源: https://www.cnblogs.com/wx1019/p/16495299.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有