Java面向对象高级之静态

静态(static)

Java中被static修饰的成员称作静态成员或类成员,属于整个类所有,可以直接使用类名或对象名进行访问

静态方法与静态变量

用static修饰的方法叫做静态方法  ,用static形式的变量叫做 静态变量

以下是使用静态(static)使用的几个需要注意的点:

1、静态方法可以直接调用同类中的静态成员,不能调用非静态成员

2、静态方法可以直接调用同类中的静态方法,不能调用非静态方法

3、普通方法则都可以进行调用


下面通过一段代码解释下:

public class StaticDemo {

           static String s = "Hello";

            String s1 = " Tom";

            public static void main(String[] args) {

                 StaticDemo sd = new StaticDemo();

                  System.out.println(StaticDemo.s+sd.s1);//前者为静态变量,可以直接调用,

                                                                                   //后者实例化后通过对象调用

                  sd.print1();

                  print2();//静态方法可以被直接调用

            }

            public void print1(){

                      System.out.println(s+s1);//普通方法可以直接调用各种成员

            }

            public static void print2(){

                      StaticDemo sd = new StaticDemo();

                      System.out.println(s+sd.s1);

            }

}


静态代码块

类加载时的执行顺序:

1、首先执行静态初始化块;

2、然后执行普通初始化块;

3、最后执行构造方法。


上代码

public class StaticDemo2 {

          int num1;

          int num2;

          static int num3;

          public StaticDemo2(){ //构造方法

          num1 = 1;

         System.out.println(num1);

         }

        {

               //普通初始化块

               num2 =2;

               System.out.println(num2);

         }

         static{

                 //静态初始化块

                 num3 = 3;

                 System.out.println(num3);

        }

        public static void main(String[] args) {

                  StaticDemo2 s1 = new StaticDemo2();

                  StaticDemo2 s2 = new StaticDemo2();

        }

}


那么输出结果是什么呢?

感兴趣的可以自己试一下哦


输出结果如下

那么我们可以从上面看出执行顺序

而且静态(static)只可以执行一次

參考 :https://www.imooc.com/article/15626

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • DAY 05 1、 public classArrayDemo { public static void mai...
    周书达阅读 734评论 0 0
  • Java OOP 什么是面向对象思想? 把一组数据和处理他们的方法组成对象(object),把相同行为的对象归纳为...
    chonglingliu阅读 792评论 0 1
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    开心的锣鼓阅读 3,342评论 0 9
  • 一、类和对象的定义及关系 1、类是同一类别对象的抽象定义;可以理解为是某一类具体对象的模子,确定对象将会拥有的特性...
    小宇java阅读 221评论 0 0
  • 过度的顺利,将你引向的往往是充满未知的恐怖深渊。 明公馆后院 阴 戴云烟这一剑来势极猛,却后力不足,似乎是受了迷魂...
    吾不为丶阅读 289评论 0 0