#500-2 成员变量和成员函数

写在前面:

给自己设定一个目标吧,无论是什么样的分享感悟,在年终的时候尽量写够500篇文章,就是凑也要凑到,呵呵。可能是技术上的成长经历,也许是个人成长方面一些经验,总之,是要有用的,无论是对自己还是别人,说的俗一点,就是要有正能量,嗯,不要是消极的观点。也许在很多成手,或者技术大神眼里,我的分享会显的浅薄,无聊。可是又有什么关系呢,我是在梳理自己的成长脉络。我本人呢,不太适合立长志,那只有长立志&长励志了。

也许一段时间以后,自己看这些文字的时候,都会笑,自己以前怎么这么傻缺呢?

目标

目标:理解类的定义和对象的关系?理解对象中成员变量是怎么来的?怎么能让成员函数明白自己和那个对象打交道?

成员变量

  • 类定义了对象中所具有的变量,这些变量称作成员变量;
  • 每个对象都有自己的变量,和同一个类的其他对象是分开的。
怎么能让成员函数明白自己和那个对象打交道?

函数是通过对象来调用的

  • 通过”.“ 运算符。
  • 变量对象.函数
  • eg:a.inser();这次调用就建立起了inser()和a之间的关系,让inser()内部的成员变量指的是a的成员变量。

而在成员函数内部直接调用自己的其他函数,使用this。
- this是成员函数的一个特殊的固有的本地变量,它表达了调用这个函数的那个对象;
- 在函数内部可以直接使用this。

在成员的外部,通过. 运算符调用某个对象函数。

对象初始化

成员变量有初始值:0(没有给初始值时)

构造函数

如果有一个成员的名字和类的名字完全相同,则在创建这个类的每一个对象的时候会自动调用这个函数。这个函数我们称为构造函数,而且的构造函数没有返回类型。

在写构造函数的时候,也可以给一个函数值,在执行对象的时候,会根据函数去自动选择一个适合的函数。我们称为重载。(表述的估计不够准备,按照自己理解想到的,以后理解加深了,会回来重写。)

函数重载

  • 一个类可以有多个构造函数,只要它们的参数表不同;
    • 构造函数无访问修饰符
    • 无返回值类型
    • VendingMachine(){ // 构造函数
      total = 0;
      }
  • 创建对象的时候可以给不同的参数值,就会自动调用不同的构造函数;
  • 通过this()可以调用其他构造函数
    • 只能放在第一句。
    • 只能在构造函数内使用。
  • 一个类里的同名但参数表不同的函数构成了重载关系。

    自己看视频也看的迷迷糊糊的,希望有人指点。

代码部分,以后复习的时候看。

package vendingMachine;

public class VendingMachine {
//  private static String ;
    int price = 80;//创建属性prince,并赋值80(定价80)
    int balance; //当前的余额
    int total;
    VendingMachine(){       // 构造函数
        total = 0;
    }
    VendingMachine(int price){  // 重载 (参数表)
        this.price = price;
        System.out.println("重构后价格:"+price);
    }
    void showPrompt()
    {
        System.out.println("Welcom 求知张郎的自动售货机");
    }
    void insertMoney( int amount)
    {
        System.out.println("您投入的金额为:"+(balance = balance + amount));
    }
    void showBalance(){
        System.out.println("您的余额为:"+balance);
    }
    void getFlood()
    {
        if(balance >= price){
        System.out.println("Here you are !");
        balance = balance - price;
        total = total + price;
        }
        else{
            System.out.println("资金不足!请将继续投币。"
                    + "^_^");
        }
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        VendingMachine vm = new VendingMachine();//制作对象vm;
        vm.showPrompt();//调用showPrompt方法。
        vm.showBalance();
        vm.insertMoney(100);// 调用方法insertMoney,并赋值100(表示投入金额100元)
        vm.getFlood();// 
        vm.showBalance();// 重新显示余额。

        VendingMachine vm1 = new VendingMachine(100);

        vm1.insertMoney(200);
        vm1.getFlood();
        vm1.showBalance();



    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值