2022—07—19 第八小组 常竞文

本文介绍了在Java编程中如何使用构造器赋值,强调了无参构造器和有参构造器的使用场景。通过Person和Debit类的例子展示了如何通过构造器初始化对象,并调用方法进行开户、存款、取款等操作。同时,讲解了this关键字的用途,指出this只能在非静态方法中使用,并且常用于构造器之间的调用。此外,还提及了面向对象编程中的封装原则,提倡属性私有化并提供getter和setter方法。
摘要由CSDN通过智能技术生成

t使用构造器赋值

如果创建对象仅仅是为了调用这个类的方法,建议使用无参构造器

如果创建对象的时候需要使用到对象的某个属性,可以使用构造器赋值

person是Persaon类的对象,是Person类的实例

 Person person = new Person();

当使用对象调用属性时,调用的是成员变量

this关键字:

this代表的是当前类的对象,this代表的是当前方法的调用者

this既然是代表方法的调用者, 它实际上和对象的作用是一样的

     既可以调属性,也可以调方法。

this不能用在static方法中

this通常用在赋值,构造器赋值。

一个类中可以有属性、方法,构造器。

调用构造器

不需要写任何名字

this调用构造器的要求:

1、必须在构造器中使用this调用构造器

2、必须是第一句话(第一行代码)

this(str);
this.i = i;

无参构造器

public Person() {

    }

有参构造器

public Person(String name,int age) {
        this.name = name;
        this.age = age;
    }

例题

* 有一个Person类,有name,age属性
* 有一个Debit类,有cardId,password,balance(余额)属性
*
* Person类有一个开户的方法,openAccount,in(余额增加),out(余额减少,
*                  取款时要判断余额)
* Debit类中有一个显示银行卡信息的方法。

1.创建对象,调用方法

public class Demo {

    public static void main(String[] args) {
        Person person = new Person("张三",25);
        Debit debit = new Debit("665544998877","123456",100);
        person.openAccount(debit);
        person.in(151);
        person.out(200);
        person.out(100);
    }
}
public class Debit {

    String cardId;
    String password;
    double balance;

    public Debit(){}

    public Debit(String cardId, String password, double balance) {
        this.cardId = cardId;
        this.password = password;
        this.balance = balance;
    }

    public void show() {
        System.out.println("卡号:" + cardId + ",余额:" + balance);
    }
}
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 {
            System.out.println("余额不足!余额为:" + debit.balance);
        }
    }

    public void show() {
        System.out.println("姓名:" + name + ",年龄:" + age);
    }
}

面向对象的特征:封装   快捷键 alt+insert

 (1)属性私有化,所有的属性都要使用private封装
 (2)提供一个公有的set,get方法。
     getter方法能够按照客户的期望返回格式化的数据
     setter方法可以限制和检验setter方法传入的参数是否合法
     隐藏对象的内部结构
   定义一个类:
  (1)所有的属性私有化
   (2)每个属性都有对应的setter、getter方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值