Java教程

Day 006 p440

本文主要是介绍Day 006 p440,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java中的三大变量

 

image-20210413135733523

this

this 大部分可以省略

this 区分局部变量和实例变量‘ (为了见名知意 同名的时候)

在实例方法中,为了区分局部变量和实例变量中是不能省的


this 除了使用在实例方法中,还能用在构造方法中

以后写代码都要封装,属性私有化,对外提供seeter and getter

class Date{
    private int year;
    //年
    private int mouth;
    //月
    private int day;
    //日
    //  无参调用构造方法
    public Data(){
        this(1970,1,1);
    }
    public Date(int year ,int mouth,int day){
        this.year = year;
        this.mouth = mouth;
        this .day = day ;
             
    }
    public  void setYear(int Year){
        this.year = year;
        
    }
    public int getYear(){
        return year;
    }
    
    }
}

this(实际参数列表)

上面的代码就是

新语法:通过当前的构造方法去调用另一个本类的构造方法,

可以使用以下的语法格式

this(实际参数列表)

 

this() 的调用必须是构造方法的第一行

 

作用 : 代码的重复使用


总结:this

  • 可以使用在实例方法中, 也可以使用在构造方法中,不能使用在静态方法中

  • 出现在实例方法中,代表的时当前的对象

  • 大部分的情况下可以省略。但是区分局部变量和实例变量的时候不能省略

  • this()这种代码只能出现在构造方法的第一行,表示当前构造方法调用本类其他的方法,目的是代码复用


一个银行的账号设置

public class bandmoney {
    public static void main(String[] args) {
        Account a =new Account("2018214473",10000000,0.0314);
        Customer c=new Customer("zhang junlong",a);
        c.getAct().deposit(1000);
        c.getAct().withdraw(9555);
        c.getAct().withdraw(1000000000);
    }
}
class  Account {
    private String ID;
    //账号id
    private double  balance;
    //账号余额
    private double annual;
    //年利率
    // 构造方法
    public  Account(){
​
    }
​
    public Account(String id,double balance,double annual){
        this.ID=id;
        this.balance =balance;
        this.annual =annual;
    }
    public void setID(String id)
    {
        this.ID=id;
    }
    public  String getID() {
    return  this.ID;
    }
    public void setBalance(double balance) {
​
        this.balance=balance;
    }
    public  double getBalance() {
​
        return  this.balance;
    }
    public void setAnnual (double annual){
        this.annual = annual;
​
​
    }
    public  double getAnnual () {
​
        return annual;
    }
    //方法 存款
    public  void deposit(double money)
    {
        this.setBalance(this.getBalance()+money);
        System.out.println("成功存入"+money);
    }
    //方法   取钱
    public void withdraw(double money){
        if(this.getBalance()>money){
            this.setBalance(this.getBalance()-money );
            System.out.println("成功取出来了"+money+"的钱");
        }
        else {System.out.println("余额不足  取不了钱");
​
                return;
        }}
​
}
class Customer{
    private String name;
    private  Account act;
    public Customer(){}
    public Customer(String name,Account act)
    {
            this.act=act;
            this.name=name;
        }
        public void setName(String name){
            this.name=name;
        }
        public String getName(){
            return name;
        }
        public void setAct(Account act){
            this.act = act;
    }
    public  Account getAct(){
        return  act;
    }
}
​

所有实例相关的都是先创建对象,通过引用。来访问

所有静态相关的都是直接用类名。的方式来访问

main 方法是静态的,jvm调用main方法的时候直接采用 类名。 的方式

所以main中没有this。

局部变量访问是没有 XXX.的

在本类中可以省 会补上this。 或者 类名。

 


大结论:只要负责调用的方法a和被调用的方法b在同一个类当中。

this。 可以省略

类名。 可以省略

继承

代码臃肿没有得到重复利用的时候

使用继承来解决

父类子类 extends

子类 extends 父类

继承的作用

基本作用:子类继承父类,代码可以得到复用

重要的主要作用: 因为有了继承的关系,才有了后期的方法覆盖和多态机制。

class A{}

class B extend A {}

superclass 父类 超类 基类

subclass 子类 派生类,扩展类

Java中不支持多继承 c++可以

c++支持多重继承

间接继承

  • Java中规定 ,子类继承父类,除了构造方法不能继承之外,剩下的都可以继承

但是私有的属性无法在子类中直接访问,可以通过间接的方式访问。

默认继承object

Object是所有类的超类

继承的缺点 耦合度太高,父类修改,子类受牵连。

子类继承父类以后,使用父类方法

 

 

害,在这边很多时候都施展不开。

等下有课,今天早点回去了。最近的上课进程慢了好多。

19点的课

 

这篇关于Day 006 p440的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!