static

package Xiaobai;

/**
 * 1.static 声明的成员变量称为静态变量或类变量
 * 2、使用static声明的方法称为静态方法
 * 3、在类加载的时候,会将静态的内容加载到方法区中的静态域中,静态的内容先于对象的存在,
 * 这个静态内容被所有该类的对象共享
 *  4、普通变量被调用时使用 对象.变量 来进行调用
 *  类变量或静态变量可以使用 对象.变量,也可以使用类名.变量来进行调用
 *  5、调用静态的方式为:【推荐】 类名.方法(); 对象.方法();
 *6、静态变量不能定义在方法中,在静态方法中不能直接调用非静态的属性和方法,但反之可以
 *                                      new TestStatic().tt();//间接调用非静态方法                 
 *  static 使用场景:
 *      某些特定的数据想要在类中共享时,只有一块--》可以使用static
 *      静态属性:(类变量)
 *      非静态属性:(实例变量)
 */
public class TestStatic {

    /*
    //属性
        int age;
        String name ;
       static char nation;

        public static void main(String[] args) {
            TestStatic.nation = '汉';
            //创建对象
         TestStatic t1 = new TestStatic();
         //为属性赋值
         t1.age = 12;
         t1.name = "张三";
        // t1.nation = '汉';
         TestStatic t2 = new TestStatic();
         //为属性赋值
         t2.age = 8;
         t2.name = "李四";
       //  t2.nation = '汉';
            System.out.println(t1.nation);
            System.out.println(t2.nation);
        }*/
    int a;
    static int b;
    static int widjh;
    public static void gg() {
        String nn;
        System.out.println("gg");
        // System.out.println(a);1、在静态方法中不能直接访问非静态的属性
        //System.out.println(new TestStatic().a);
        //static int n;静态变量不能定义在静态方法中
        //new TestStatic().tt();//间接调用非静态方法

    }

    void tt() {
        System.out.println("tt");
        System.out.println(a);
        System.out.println(b);
        //static int w;静态变量不能定义在普通方法中
        this.gg();
    }

    public static void main(String[] args) {
        TestStatic hi = new TestStatic();
        //       System.out.println(this.a);2.在静态方法中,不能用this关键字
//        hi.b = 20;//对象.静态属性
//        TestStatic.b = 19;//类名.静态属性(推荐)
//        //调用方法
//        TestStatic.widjh = 2;
//        //调用静态的方式为: 类名.方法(); 对象.方法();
        //TestStatic.gg();
       // hi.gg();
       // gg();//调用静态方法 在同一个类中可以直接调用
        hi.tt();

    }
}
   //声明一个静态属性
  /*  static int count;
    public TestStatic() {//无参的构造方法
    count++;
        System.out.println("创建了"+count+"个对象");
    }

    /**
     *匿名对象的特点:
     * 一次性,只能使用一次
     * 格式:
     * new 类名();
     * 匿名对象可以作为实际参数进行传递

    public static void main(String[] args) {
       new TestStatic();//创建匿名对象
        new TestStatic();//创建匿名对象
        new TestStatic();
        }
 }
   */

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值