博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java自学笔记(11):【面向对象】 package,import,访问控制修饰符,static
阅读量:4624 次
发布时间:2019-06-09

本文共 2261 字,大约阅读时间需要 7 分钟。

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·········· 

 

转载于:https://www.cnblogs.com/tkj521Ya/p/11224521.html

你可能感兴趣的文章
Restful levels
查看>>
Phonegap移动开发:布局总结(一) 全局
查看>>
Java 变参函数的实现
查看>>
nrf51 SDK自带例程的解读
查看>>
SESSION技术
查看>>
数据结构(五)之直接插入排序
查看>>
SQL函数——LENGTH()和LENGTHB()
查看>>
vim - manual -个人笔记
查看>>
详解Javascript中prototype属性(推荐)
查看>>
angularjs实现首页轮播图
查看>>
Git 对象 和checkout 和stash的笔记
查看>>
团队项目总结2-服务器通信模型和顺序图
查看>>
hdu 1085 Holding Bin-Laden Captive!
查看>>
[周记]8.7~8.16
查看>>
递归定义
查看>>
kindeditor 代码高亮设置
查看>>
图的邻接表存储
查看>>
2018 leetcode
查看>>
PHP中获取当前页面的完整URL
查看>>
Chapter 4 Syntax Analysis
查看>>