zoukankan      html  css  js  c++  java
  • 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·········· 

  • 相关阅读:
    【C语言期末实训】学生学籍管理系统
    【我要学python】愣头青之小数点精度控制
    【吾爱破解第二期】操作学习笔记
    【吾爱破解第一期】破解基础知识之认识壳与程序的特征
    【linux入门必备】小白需要掌握的基础知识_不定期更新
    【我要学python】爬虫准备之了解基本的html标签
    【我要学python】愣头青之初安装就打了一记耳光
    【我要学python】MethodType和isinstance和Type函数
    【我要学python】面对对象编程之继承和多态
    【我要学python】open函数的简单用法
  • 原文地址:https://www.cnblogs.com/tkj521Ya/p/11224521.html
Copyright © 2011-2022 走看看