• 访问属性

      • 封闭的访问属性

        • private等访问权限控制是对类的,这意味着同一类的不同对象可以互相访问其成员
        • 这是从代码层面去考虑的,意味着不同类文件
      • 开放的访问属性
        • 一个类文件就是一个编译单元
        • public class可以在不同包不同类进行访问
        • 没有任何访问控制权限的class只能在同一包里进行访问
      • 包名的 . 代表文件夹系统中文件的层次
      • JVM自动生成的构造函数访问权限是Public
      • 例如com.mieba.servlet和com.mieba.dao
        • 文件夹层次为

          • src

            • com

              • mieba

                • servlet
                • dao
    • 类变量
      • 类变量

        • 属于类,不属于对象
        • 两种访问方式:class.变量 object.变量
      • 类函数
        • 类函数里只能访问类函数和类变量
    • 测验和作业
      • 有秒计时的数字时钟
      •  package com.study;
        
         import java.util.Scanner;
        
         public class Main
        { public static void main(String[] args)
        {
        java.util.Scanner in = new java.util.Scanner(System.in);
        Clock clock = new Clock(in.nextInt(), in.nextInt(), in.nextInt());
        clock.tick();
        System.out.println(clock.toString());
        in.close();
        } } class Display
        {
        private int value = 0;
        private int limit = 0; public Display(int limit)
        {
        this.limit = limit;
        } public int getValue()
        {
        return value;
        } public void setValue(int value)
        {
        this.value = value;
        } public void increase()
        {
        value++;
        if (value == limit)
        {
        value = 0;
        }
        } } class Clock
        { private Display hour = new Display(24);
        private Display minute = new Display(60);
        private Display second = new Display(60); public Clock(int hour, int minute, int second)
        {
        if(hour<24&&minute<60&&second<60)
        {
        this.hour.setValue(hour);
        this.minute.setValue(minute);
        this.second.setValue(second);
        }
        else
        {
        System.out.println("输入有误,程序结束");
        }
        } public String toString()
        {
        String hour = String.format("%02d", this.hour.getValue());
        String minute = String.format("%02d", this.minute.getValue());
        String second = String.format("%02d", this.second.getValue());
        return (hour+":"+minute+":"+second);
        } public void tick()
        {
        second.increase();
        if (second.getValue() == 0)
        {
        minute.increase();
        if (minute.getValue() == 0)
        {
        hour.increase();
        }
        } } }

        运行结果

Java进阶学习(2)之对象交互(下)的更多相关文章

  1. Java进阶学习:将文件上传到七牛云中

    Java进阶学习:将文件上传到七牛云中 通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去. JavaSDK:https://developer.qiniu.com/k ...

  2. Java进阶学习:log4j的学习和使用

    Java进阶学习——log4j的学习和使用 简介Loj4j Log4j的组成 Log4j主要由三大组组件构成: Logger: 负责生成日志,并能够对日志信息进行分类筛选,通俗的讲就是决定什么日志信息 ...

  3. Java进阶学习(2)之对象交互(上)

    对象交互 对象交互 对象的识别 时钟小程序 把现实世界用对象去建模,去分解问题规模,最终抽象成对象和对象的模型 例如11:03的小程序,可以抽象成一个显示类,一个类生成两个对象去表示时钟 packag ...

  4. Java进阶学习(3)之对象容器(下)

    对象数组 对象数组中的每个元素都是对象的管理者而非对象本身 对象数组的for—each循环 集合容器(HashSet) HashSet 数学中的集合,元素间满足互异性.确定性.无序性 HashSet& ...

  5. Java进阶学习(1)之类与对象(下)

    类与对象 函数与调用 函数是通过对象来调用的 this 是成员函数的特殊的固有的本地变量 它表达了调用这个函数的那个对象 调用函数 通过 . 运算符,调用某个对象的函数 在成员函数内部直接调用自己(t ...

  6. Java进阶学习(4)之继承与多态(下)

    多态变量和向上造型 多态变量 子类和子类型 类定义了类型 子类定义了子类型 子类的对象可以被当作父类的对象来使用 赋值给父类的变量 传递给需要父类对象的函数 放进存放父类对象的容器里 多态变量 Jav ...

  7. Java进阶学习(3)之对象容器.小练习

    查找里程(10分) 题目内容: 下图为国内主要城市之间的公路里程: 你的程序要读入这样的一张表,然后,根据输入的两个城市的名称,给出这两个城市之间的里程. 注意:任何两个城市之间的里程都已经给出,不需 ...

  8. Java进阶学习(3)之对象容器(上)

    对象容器 顺序容器 记事本的例子 UI设计和业务逻辑要分离 接口设计 add(String note); getSize(); getNote(int index); removeNote(index ...

  9. Java进阶学习(1)之类与对象(上)

    package com.study; //自动售卖机 public class vmachine { private int price = 80; private int balance; priv ...

随机推荐

  1. 0004 继承django系统用户表

    1 创建基础模型 在本项目中,所有表都有两个自动产生的完全相同的字段,即创建时间和更新时间,因此,可以创建一个基础模型,让所有的表都来继承这个模型. 找到工程目录下的PublicMethod目录,创建 ...

  2. JavaScript的HelloWorld创建

    JavaScript JavaScript(简写为JS)是一门世界上最流行的脚本语言. ECMAScript是JavaScript的一个标准,最新版本到es6版本. 但是开发环境和线上环境存在版本不一 ...

  3. 1.spring源码-BeanPostProcessor后置处理器

    1.BeanPostProcessor接口的介绍: BeanPostProcessor是一个接口,其中有两个方法,postProcessBeforeInitialization和postProcess ...

  4. [Luogu]三步必杀

    Description Luogu4231 Solution 我最近到底怎么了,这种题都做不出来了,一看题第一反应李超线段树(虽然不会),觉得不可做,看一眼题解才发现这个题可以差分,然后差分还打错了好 ...

  5. root xshell登陆Ubuntu

    https://www.jianshu.com/p/c8ee39488d2a xshell测试非root用户,可以正常连接,但是root用户仍旧无法访问 解决方法:修改 /etc/ssh/sshd_c ...

  6. ubuntu 离线装包

    1,为什么要离线装包 防止有些包官方升级以后导致的不兼容,比如php5和php7,目前已经无法apt-get install php5了, 2,装包以前你得有安装包文件,deb或者是run deb包在 ...

  7. AcWing 893. 集合-Nim游戏

    //只能拿某些特定个数的石子 #include <cstring> #include <iostream> #include <algorithm> #includ ...

  8. Flink流处理(三)- 数据流操作

    3. 数据流操作 流处理引擎一般会提供一组内置的操作,用于对流做消费.转换,以及输出.接下来我们介绍一下最常见的流操作. 操作分为无状态的(stateless)与有状态的(stateful).无状态的 ...

  9. winform学习(3)窗体事件

    窗体的常用事件 事件可以理解为用户的操作,如点击鼠标键盘 应用程序需要在事件发生时进行响应,因此事件分为: 注册事件:必须为对象注册事件才会被执行(如为某控件添加一个单击的事件) 触发事件:注册后的事 ...

  10. DNS辅助

    DNS服务原理详解 DNS:Domain Name Service,域名解析服务 监听端口:udp/53,tcp/53 应用程序:bind 根域:. 一级域: 组织域:.com, .org, .net ...