一、类与对象

1.1 用类制造对象

java自助贩卖机系统蓝牙版本 指令_java


java自助贩卖机系统蓝牙版本 指令_System_02


java自助贩卖机系统蓝牙版本 指令_成员变量_03

1.2 定义类

例1.2 商品售卖机

package ch2;

public class VendingMachine {
	int price =80;
	int balance;
	int total;
	
	void showPrompt()
	{
		System.out.println("Welcome.");
	}
	
	void insertMoney(int amount)
	{
		balance =balance +amount;
	}
	
	void showBalance() {
		System.out.println(balance);
	}
	
	void getFood()
	{
		if(balance >=price) {
			System.out.println("Here you are.");
			balance = balance - price;
			total = total +price;
		}
	}
	public static void main(String[] args) {
		VendingMachine vm = new VendingMachine();
		vm.showPrompt();
		vm.insertMoney(100);
		vm.showBalance();
		vm.getFood();
		vm.showBalance();
	}
}

java自助贩卖机系统蓝牙版本 指令_成员变量_04


java自助贩卖机系统蓝牙版本 指令_java_05


类是定义了这个类的所有对象长什么样,而对象是这个类的一个个具体实例

1.3 成员变量和成员函数

java自助贩卖机系统蓝牙版本 指令_System_06


java自助贩卖机系统蓝牙版本 指令_java_07


java自助贩卖机系统蓝牙版本 指令_System_08


java自助贩卖机系统蓝牙版本 指令_成员变量_09

java自助贩卖机系统蓝牙版本 指令_java_10


java自助贩卖机系统蓝牙版本 指令_java自助贩卖机系统蓝牙版本 指令_11


成员变量与本地变量

java自助贩卖机系统蓝牙版本 指令_System_12

1.4 对象初始化

java自助贩卖机系统蓝牙版本 指令_成员变量_13


java自助贩卖机系统蓝牙版本 指令_java_14

java自助贩卖机系统蓝牙版本 指令_java_15


java自助贩卖机系统蓝牙版本 指令_java自助贩卖机系统蓝牙版本 指令_16


java自助贩卖机系统蓝牙版本 指令_System_17


java自助贩卖机系统蓝牙版本 指令_成员变量_18

二、对象交互

2.1 对象的识别

java自助贩卖机系统蓝牙版本 指令_java自助贩卖机系统蓝牙版本 指令_19

package clock;

public class Display {
	private int value = 0;
	private int limit = 0;
	
	public Display(int limit) {
		this.limit = limit;
	}
	
	public void increase()
	{
		value++;
		if(value ==limit)
			value = 0;
	}
	
	public int getValue()
	{
		return value;
	}
	public static void main(String[] args) {
		Display d =new Display(24);
		for(; ;) {
			d.increase();
			System.out.println(d.getValue());
		}
	}
}
2.2 对象交互

java自助贩卖机系统蓝牙版本 指令_成员变量_20


clock是老大!指挥hour和minute

java自助贩卖机系统蓝牙版本 指令_java_21


java自助贩卖机系统蓝牙版本 指令_java_22

package clock;

public class Clock {
	private Display hour = new Display(24);
	private Display minute = new Display(60);
	
	public void start() {
		while(true) {
		minute.increase();
		if(minute.getValue()==0)
		{
			hour.increase();
		}
		System.out.printf("%02d:%02d\n", hour.getValue(),minute.getValue());
	}
	}
	public static void main(String[] args)
	{
		Clock clock = new Clock();
		clock.start();
	}
}
2.3 封闭的访问属性

java自助贩卖机系统蓝牙版本 指令_java_23


能够使用成员变量的地方只有两个:

  1. 在成员函数里面(可能是构造函数,可能是普通函数)
  2. 定义初始化的地方可以使用已经定义好的成员变量
2.4开放的访问属性

java自助贩卖机系统蓝牙版本 指令_System_24


java自助贩卖机系统蓝牙版本 指令_java自助贩卖机系统蓝牙版本 指令_25


.java表示一个编译单元。

import java.util.Scanner;

每一个.都代表一个层次

2.5 类变量(static)
package clock;

public class Display {
	private int value = 0;
	private int limit = 0;
	public static int steep = 0;
	
	public Display(int limit) {
		this.limit = limit;
	}
	
	public void increase()
	{
		value++;
		if(value ==limit)
			value = 0;
	}
	
	 int getValue()
	{
		return value;
	}
	public static void main(String[] args) {
		Display d1 = new Display(10);
		Display d2 = new Display(20);
		d1.increase();
		System.out.println(d1.getValue());
		System.out.println(d2.getValue());
		System.out.println(d1.steep);
		System.out.println(d2.steep);
		d1.steep = 2;
		System.out.println(d1.steep);
		System.out.println(d2.steep);
		}
	}

输出情况

java自助贩卖机系统蓝牙版本 指令_成员变量_26


(static)类变量它是这个类的变量,它不属于它的任何一个对象,它属于这个类,任何一个对象都拥有它,这个变量不在每个对象里。

java自助贩卖机系统蓝牙版本 指令_java自助贩卖机系统蓝牙版本 指令_27

2.6 类函数

static的类和变量不属于任何具体的对象。

package clock;

public class Display {
	private int value = 0;
	private int limit = 0;
	public static int steep = 0;
	
	public Display(int limit) {
		this.limit = limit;
	}
	
	public void increase()
	{
		value++;
		if(value ==limit)
			value = 0;
	}
	
	 int getValue()
	{
		return value;
	}
	public static void main(String[] args) {
		Display d1 = new Display(10);
		d1.steep = 2;
		System.out.println(d1.steep);
		Display d2 = new Display(20);
		System.out.println(d2.steep);

		}
	}