• 访问属性
      • 封闭的访问属性
        • private等访问权限控制是对类的,这意味着同一类的不同对象可以互相访问其成员
        • 这是从代码层面去考虑的,意味着不同类文件
      • 开放的访问属性
        • 一个类文件就是一个编译单元
        • public class可以在不同包不同类进行访问
        • 没有任何访问控制权限的class只能在同一包里进行访问
      • 包名的 . 代表文件夹系统中文件的层次
      • JVM自动生成的构造函数访问权限是Public
      • 例如com.mieba.servlet和com.mieba.dao
        • 文件夹层次为
          • src
            • com
              • mieba
                • servlet
                • dao
    • 类变量
      • 类变量
        • 属于类,不属于对象
        • 两种访问方式:class.变量 object.变量
      • 类函数
        • 类函数里只能访问类函数和类变量
    • 测验和作业
      • 有秒计时的数字时钟
      •  1 package com.study;
         2 
         3 import java.util.Scanner;
         4 
         5 
         6 
         7 public class Main
         8 {
         9 
        10     public static void main(String[] args)
        11     {
        12         java.util.Scanner in = new java.util.Scanner(System.in);
        13         Clock clock = new Clock(in.nextInt(), in.nextInt(), in.nextInt());
        14         clock.tick();
        15         System.out.println(clock.toString());
        16         in.close();
        17     }
        18 
        19     
        20 }
        21 
        22 class Display
        23 {
        24     private int value = 0;
        25     private int limit = 0;
        26 
        27     public Display(int limit)
        28     {
        29         this.limit = limit;
        30     }
        31 
        32     public int getValue()
        33     {
        34         return value;
        35     }
        36 
        37     public void setValue(int value)
        38     {
        39         this.value = value;
        40     }
        41 
        42     public void increase()
        43     {
        44         value++;
        45         if (value == limit)
        46         {
        47             value = 0;
        48         }
        49     }
        50 
        51 }
        52 
        53 class Clock
        54 {
        55 
        56     private Display hour = new Display(24);
        57     private Display minute = new Display(60);
        58     private Display second = new Display(60);
        59 
        60     public Clock(int hour, int minute, int second)
        61     {
        62         if(hour<24&&minute<60&&second<60)
        63         {
        64         this.hour.setValue(hour);
        65         this.minute.setValue(minute);
        66         this.second.setValue(second);
        67         }
        68         else
        69         {
        70             System.out.println("输入有误,程序结束");
        71         }
        72     }
        73 
        74     public String toString()
        75     {
        76         String hour = String.format("%02d", this.hour.getValue());
        77         String minute = String.format("%02d", this.minute.getValue());
        78         String second = String.format("%02d", this.second.getValue());
        79         return (hour+":"+minute+":"+second);
        80     }
        81 
        82     public void tick()
        83     {
        84             second.increase();
        85             if (second.getValue() == 0)
        86             {
        87                 minute.increase();
        88                 if (minute.getValue() == 0)
        89                 {
        90                     hour.increase();
        91                 }
        92             }
        93             
        94     }
        95 
        96 
        97 }

        运行结果

      •  

         

posted on 2020-01-17 07:42  生长的力量  阅读(154)  评论(0编辑  收藏  举报