ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2022-03-21 19:02:05  阅读:178  来源: 互联网

标签:变量 System private Display 包和类 limit 交互 public 属性


第二章

对象交互

如何识别对象
如何交互

识别

在这里插入图片描述
将其拆分成小时和分钟,分别构建,再总和。
一个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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有