• 访问属性

      • 封闭的访问属性

        • 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. ubuntu18 + caffe+cpu+anaconda3

    本记录只暂时只记录一些错误. 编译错误,opencv3.2与anaconda3下的libtiff不兼容,冲突. 问题查找(查找所有的TIFF库与编译错误提示匹配/usr/lib/x86_64-linu ...

  2. CrystalDecisions.Windows.Forms文件

    1.CrystalDecisions.Windows.Forms 相关dll文件 CrystalDecisions.Crystalreports.Engine.dllCrystalDecisions. ...

  3. git的分支

    git branch : git branch  -r  #查看远程分支 git branch -a  #查看本地分支和远程分支 git branch  -v  #查看本地库的所有分支 git  br ...

  4. 后端——框架——缓存框架——memcached——《Memcached教程》阅读笔记

    Memcached的知识点大致可以分为三个部分. 服务器部分:环境搭建. 概念:存储的数据类型,指令,内存的替换策略. 集成:与Java语言的集成. 1.搭建环境 1.1 Linux环境 在Linux ...

  5. 怎么编写API和或者自己不属于知识小案例demo程序

    再使用一个函数,进行测试的调用,然后进行调用这样就不需要再为makefile什么,还有就是改什么鬼东西烦恼了. 然后把需要的功能进行分解就行了.

  6. mysql之case..when ..then..else..end as..用法

    1.示例1 查询1: SELECT CASE main_xm_sam31 WHEN '02' THEN 2 ELSE 1 END AS SPDJ FROM SR_MAIN_BG A WHERE A.P ...

  7. sql server和eclipse连接问题

    最近学习java,需要用的数据库sql sever,这就有一个连接问题需要设置 首先需要下载sql server,可查看我的博客sql sever下载教程: 连接教程:eclipse连接sql ser ...

  8. ES6新的数据类型 generato,在AJAX中的应用

    1.next()方法会执行generator的代码,然后,每次遇到yield x;就返回一个对象{value: x, done: true/false},然后“暂停”.返回的value就是yield的 ...

  9. JDK8新特性---stream流

    项目上用到了stream流,找篇blog,转载一下,介绍下Stream流的用法. 1 流概述  流是 JDK8 新增的成员,允许以声明性方式处理数据集合,可以把 Stream 流看作是遍历数据集合的一 ...

  10. SpringMVC-时间类型转换

    在上一篇SpringMVC的提交表单中,我们使用的日期为String型,可以将日期转换为Date型,然后使用initBinder函数进行显示,具体代码如下: (1)首先更改User.java的birt ...