Java基础白话文_何为Java静态变量,静态初始化,静态代码块?!

版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/qq_29694039/article/details/75488164

不罗嗦,直接撸代码!

看别人说了半天还不懂,那就拿下面代码去尝试,先别问为什么要这么写,先按照自己的思路写,报错了你就知道什么原因!然后看看大神的讲解,所谓理论一抄一大筐!我就不罗嗦写了。。。。。
这里写图片描述

  • 再贴代码,如有问题恳请指正,别让我堕入魔道,万劫不复!
    -过多的文字,我写着累,你看着也烦!索性,代码也给你,自己扔项目中试试!解释都写在代码注释中了,不至于看不懂吧。所以,不明白的请留言!
package com.demo;

public class Foo {
    static int i = 1024;
    static double k = 2048.0;
    int b = 1;
    public static void main(String[] args){
        Foo f = new Foo();
        //应该以静态方式访问类型Foo中的静态方法setK(double) 或者setK就不要静态化了嘛
        f.setK(2.0);//The static method setK(double) from the type Foo should be accessed in a static way
        System.out.println("k = " + k);
    }
    public void setI(int i){
        Foo.i = i;
        this.i = i;//The static field Foo.i should be accessed in a static way简单翻译就是,应该用 Foo.i这种形式
    }
    //java 这种形式称为静态初始化或者静态代码块
    public static void setK(double k){
        Foo.k = k;
    }

    public static void setB(int b){
        Foo.b = b;//Cannot make a static reference to the non-static field Foo.b 能看懂吧,他是让你把变量b变成静态变量
        this.b = b;//Cannot use this in a static context 
        b = 666;
    }

    // 最后,补充个java基础知识点。初始化顺序:静态变量、静态初始化块>变量、初始化块>构造器
    // 那么最后一个问题,关于this关键字你又了解多少呢?
}

猜你喜欢

转载自blog.csdn.net/qq_29694039/article/details/75488164
今日推荐