• Java自学笔记(11):【面向对象】 package,import,访问控制修饰符,static


    package与import

    在Java中每定义一个类,通过java编译器编译之后,都会生成一个扩展名为.class的文件,当这个程序的规模逐渐庞大时,就会出现类重名的现象。

    包即是管理类的机制

    如何定义包?   使用package关键字     package 包名;  包可以重叠,母包与子包之间用.隔开   package  包名1.包名2;

    注意: 在类中指定包名时需要将package语句放置在程序第一行,必须是文件中的第一行非注释代码

    包的命名规则:       都由小写字母组成

    带包程序的编译和运行:

    package exaggerate;
    public class demo{
        public static void main(String[] args){
            System.out.println("Welcome to Java");
        }
    }

    在cmd中:

       ( - d . 为在当前目录下)

     运行第一行代码,会生成一个文件夹(即包)

    再运行第二行即可

    (带包的java 按正常方法无法运行)

    如何引入包?  使用  import

    两种包的导入机制:

        单类型导入: 如:import   exaggerate.Person;                import   包名.类名;   //  提高速度,避免冲突

        按需类型导入: 如: import exaggerate.*;                        // *为通配符 告诉编译器,对于未知类可以去此包中查找,此方法会影响代码编译速度

    包的用途: 归类整理,允许类重名


    访问控制修饰符

    java提供的访问控制修饰符,可以给类库开发人员向客户端程序员指明那些是可用的,那些是不可用的

    访问控制等级: public>protected>default>private

    Java类的种类 :外部类                    //只能使用public,default

      内部类                    //都可以

                                                                             修饰类:

      public protected default private
    同类
    同包不同类 ×
    不同包 × × ×

    而protected与default之间的区别在继承上:  

                              修饰类成员

     

    public

    protected default private
    同一类内
    同包不同类 ×
    不同包 × × ×
    子类(不同包)  //继承 × ×

    static 关键字

    静态成员: 使用static可以修饰成员变量,常量,方法和代码块

    静态成员是全局的,归整个类所有,不依赖特定对象,是被所有类的对象所共享的

    只要被虚拟机加载,就可以根据类名在全局数据域内找到他们

    访问格式: 类名.静态成员

    静态变量,也称为静态成员变量,是指被static关键字修饰的成员变量。生命周期和类生命周期一致,被类的所有对象共享

    示例:

    public class sellTickets {
        String name;
        int tickets=10;   //非静态
        sellTickets(String name){
            this.name=name;
        }
        void selling() {
            while(tickets>0) {
                tickets--;
                System.out.println(name+"剩余票数: "+tickets);
            }
        }
        public static void main(String[] args) {
            sellTickets demo1 =new sellTickets("第一台");
            sellTickets demo2 =new sellTickets("第二台");
            demo1.selling();
            demo2.selling();
        }
    
    }

    运行结果:

    public class sellTickets {
        String name;
        static int tickets=10;  //静态
        sellTickets(String name){
            this.name=name;
        }
        void selling() {
            while(tickets>0) {
                tickets--;
                System.out.println(name+"剩余票数: "+tickets);
            }
        }
        public static void main(String[] args) {
            sellTickets demo1 =new sellTickets("第一台");
            sellTickets demo2 =new sellTickets("第二台");
            demo1.selling();
            demo2.selling();
        }
    
    }

    运行结果:

    可见tickets被共享

     静态方法同理

     非静态方法中可以进行静态方法的调用,反之不可


    累死窝啦

                                                                                  

    To  Be  Continued·········· 

  • 相关阅读:
    互联网成为基础设施,数据成为生产资料,计算成为公共服务。让计算成为人类的能力,让数据成为世界的财富
    数据本没有价值,就像你留在地上的脚印,直到你有计算能力去处理才会产生价值。计算,如同其他基础设施一样,能够把沉寂的数据“沙子”变成经济、产业、财富的“金矿”。
    100多年前,铁路在美国成为基础设施,为美国带来翻天覆地的变化。今天互联网作为基础设施,对中国未来发展的推动绝对不会亚于当年铁路给美国带来的变化。
    HDU--1060
    素数
    欧几里德算法与扩展欧几里德算法
    HDU--1164
    挨踢人生路
    HDU题目分类
    HDU--2087
  • 原文地址:https://www.cnblogs.com/tkj521Ya/p/11224521.html
Copyright © 2020-2023  润新知