• 访问属性

      • 封闭的访问属性

        • 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. LaTeX竖立公式符号

    1.LaTeX技巧668:LaTeX如何实现直立积分号 \usepackage{amsmath,amssymb} \DeclareSymbolFont{EulerExtension}{U}{euex} ...

  2. 查看杀死django进程

    #命令:#用于显示tcp,udp的端口和进程等相关情况netstat -tunlp"""ps:-t (tcp)仅显示tcp相关选项-u (udp)仅显示udp相关选项-n ...

  3. youtube-dl parameters

    how to select the format of vidoes from youtube-dl? https://www.jianshu.com/p/611009843919 https://u ...

  4. c#窗体进度条

    c#窗体进度条 //进度条的最大值 ; progressBar1.Maximum = Convert.ToInt32(a); ;i<progressBar1.Maximum;i++) { //进 ...

  5. null值与非null只比较大小时,只会返回false

    DateTime? time=null; DateTime now=DateTime.Now; null值与非null只比较大小时,只会返回false 无论是大于比较还是小于比较还是等于,都会返回fa ...

  6. C++-POJ1016-Numbers That Count

    无语,15步产生16个数,植树原理啊! 大水题,居然wa了好几次,唉,自己的问题. 略略略,就要封装成结构体,略略略. #include <set> #include <map> ...

  7. [linux] Ubuntu18.04 安装mysql密码不对

    安装 安装过程可以说是非常简单了 sudo apt-get install mysql-server 然后看看有没有启动成功 systemctl status mysql 看到状态是 running就 ...

  8. 查看ie版本

    window10系统还好说,一般都是IE11版本,其他系统或服务器看=查看ie版本就很烦 方法一:按组合键  ALT+H 打开“帮助”,再按 A 选择“关于Internet Explorer” 方法二 ...

  9. 图的最小生成树prim算法模板

    用prim算法构建最小生成树适合顶点数据较少而边较多的图(稠密图) prim算法生成连通图的最小生成树模板伪代码: G为图,一般为全局变量,数组d为顶点与集合s的最短距离 Prim(G, d[]){ ...

  10. myeclipse2017配置tomcat7.0

    具体配置参考这篇博客:https://www.cnblogs.com/alibaba-inc/p/9249135.html 期间可能会碰到这样一个问题,"The server does no ...