其他分享
首页 > 其他分享> > &2 - 对象交互、访问属性、包和类变量

&2 - 对象交互、访问属性、包和类变量

作者:互联网

第二章

对象交互

如何识别对象
如何交互

识别

在这里插入图片描述
将其拆分成小时和分钟,分别构建,再总和。
一个display显示的属性需要有当前值最高上限
需要两种操作:增加获取当前值
在这里插入图片描述

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;
		}
	}
}

交互

对象组合成了新的对象
用一个类的两个对象建立起另外一个类

每一个对象 每一个类都尽可能独立
在这里插入图片描述
Clock类中的成员变量hour和minute都是Display类的对象

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());
		}
	}
}

访问属性

封闭的 private

作为一个私有的private成员变量在它的类的外部是看不见的,无法直接使用。只有自己能访问。
在没有特殊情况的时候,所有的成员变量应该是私有的,让其是私有的才能保护这些变量不被外界随意地使用,才能让这个变量按照设计者自己的意图来改变被使用

private

开放的 public

public

既不带private也不带public意味着“friendly”,这样的成员变量和函数可以在同一个包里被访问。

编译单元:一个.Java文件、一个源代码文件是一个编译单元。
编译的时候一次对这一个单元去做编译的动作。
在一个编译单元中可以有多个java类,只有一个类可以是public。没有public的类就意味着只能在这个包里起作用。
—— public类名要和文件名必须相同

包 package

在这里插入图片描述
clock就是一个包
使用import可以跨包使用,每一个.代表一个文件夹层次

import java.util.Scanner

类变量

public class Display {
	private int value = 0;
	private int limit = 0;
	private static int step = 1;
	
	public Display(int limit) {
		this.limit = limit;
	}
	public void increase() {
		value++;
		if(value == limit) {
			value = 0;
		}
	}
	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.step);
		System.out.println(d2.step);
		d1.step = 2;
		System.out.println(d1.step);
		System.out.println(d2.step);
		Display.step = 3;
		System.out.println(d1.step);
		System.out.println(d2.step);
	}
}

/*输出结果:
1
0
1
1
2
2
3
3
*/

static变量可以被类.变量访问,static变量称为类变量,不是成员变量,是类的变量,不属于任何一个对象,它属于这个类,任何对象都拥有这个变量,但只有这一份

类函数

static函数只能访问static变量,static函数的所属情况与类变量是一样的。
static的初始化和对象是没有关系的。

标签:变量,System,private,Display,包和类,limit,交互,public,属性
来源: https://blog.csdn.net/weixin_45427596/article/details/123639257