statc,块,包

本文详细介绍了Java编程中的static关键字,包括静态属性、静态方法和静态代码块的使用,强调了它们在类加载过程中的特性。此外,还讲解了包的概念,如命名规范和作用,以及访问权限修饰符的四种类型:public、protected、default和private的用法。
摘要由CSDN通过智能技术生成

static

static被称为静态,可以用来修饰类的属性,方法,代码块,内部类

随着类的加载而加载

优先于对象存在

修饰的成员,被所有对象所共享

可不创建对象,直接被类调用(类名.静态属性名)

static静态属性

静态属性是类的所有对象共享的,即不管创建多少对象,静态属性始终只有一份.

用static 修饰一个变量是静态变量,静态变量直接使用类名.静态变量名赋值

public class Chinese {
    String name  //非静态属性
    static String country="中国"; //jign'tai'shu'xing
    }

static静态方法

静态的方法就是不需要将类实例化就可以直接使用类名调用到方法或者属性。

静态方法只能访问静态变量.不能访问成员变量.

构造方法能访问成员变量与静态变量

 public class Chinese {
    String name;
    static String country="中国";  
 public void Chinese1(){
        System.out.println(name);
        System.out.println(country);
    }

    public static void Chinese(){
        System.out.println(name);
    }

代码块

代码块在类中声明,类似一个没有名称的方法体.代码块分为静态块与实例块

static{
        System.out.println("静态块");   //跟类一起加载
    }

    {
        System.out.println("非静态块");    //创建对象时自动调用
    }

一般来说代码在执行中,先执行静态块,再执行非静态块,构造方法

包在物理上类似一个文件夹,用来管理各种类

包的作用

避免重名类

package javaoop.day3.demo1;
import sun.util.calendar.BaseCalendar;
import java.util.Date;
/*
* 避免重名类,  全类名=包名(类的地址)+类名
* */
public class    Test {
    //默认使用的时import关键词导入的类
    Date date =new Date(); //java.util.Date
    //只能使用全类名
    java.sql.Date date1=new java.sql.Date(1000);
}

按照不同功能管理类

控制访问权限

包的命名规范

在包名中,可以使用.号来区分包的级别;包名一般情况下是小写
第一级 指该项目的类型,如com,org,gov等,
第二级 指项目所开发或者运行的公司名称,如:oracle,sun,huawei等
第三级 指项目的名称,如:bcms,oa,erp,cms等
第四级 指项目模块的名称,如:bean,action,exception等

访问权限修饰符

1)public :公共权限 修饰类、属性、方法。可以被任意类访问

2)protected:受保护的权限 修饰属性、方法。 可以被同包类访问,如果不是同包类,必须是该类的子类才可以访问。

3)default:同包权限 修饰类、属性、方法。只能被同包的类访问

4)private:私有权限 修饰属性、方法。 只能在本类中访问

同一个类中

public class Test {
    public int pubnum;
    protected int pronum;
              int num;
    private int prvnum;

    public void test(){
        //同一个类中
        System.out.println(pubnum);
        System.out.println(pronum);
        System.out.println(num);
        System.out.println(prvnum);
    }
}

同包不同类

public class Testa {
    public static void main(String[] args){
        //同包不同类
     Test test=  new Test();
     test.num=1;
     test.pronum=2;
     test.pubnum=3;
    }
}

不同包

public class Testb extends Test {
    //不同包
    public void test(){
      Test testb= new Test();
      testb.pubnum=1;
    //不同包,但是是该类的子类
      Testb testc=new Testb();
      testc.pronum=2;
      testc.pubnum=2;
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值