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

猜你喜欢

转载自www.cnblogs.com/tkj521Ya/p/11224521.html