即日起在codingBlog上分享您的技术经验即可获得积分,积分可兑换现金哦。

Java语言初步入门基础知识学习和进阶学习和进阶笔记:(十)static关键字

编程语言 u012325020 7℃ 0评论
本文目录
[隐藏]

1.十.static关键字


1.1.10.1 static定义属性

  如果要描述出共享的属性信息,使用static定义属性,这样方便修改,且节约内存空间。

  (1)多个对象具有相同的属性时,如下多个对象都是一个班级的,即属性clas属性相同,此时如果需要对他们的clas属性进行修改时,需要对每个对象进行修改。

class Student{
    private String name;
    String clas;

    public Student(String name, String clas){
        this.name = name;
        this.clas = clas;
    }

    public String getInfo(){
        return "姓名:" + this.name + ";班级:" + this.clas;
    }
}

public class Test{
    public static void main(String[] args){
        Student stu1 = new Student("IoT小混混", "计算机技术");
        Student stu2 = new Student("iot小混混", "计算机技术");
        stu1.clas = "计算机科学与技术";
        System.out.println(stu1.getInfo());
        System.out.println(stu2.getInfo());
    }
}

这里写图片描述

  如果用static声明该属性时,则不用每个修改,如下将

static String clas;

  (2)static与非static属性最大的区别:所有非static属性必须在产生实例化对象后才可以访问,而static在没有实例化的情况下也可以使用,如下例所示:

class Student{
    private String name;
    static String clas;

    public Student(){

    }

    public String getInfo(){
        return "姓名:" + this.name + ";班级:" + this.clas;
    }
}

public class Test{
    public static void main(String[] args){
        Student.clas = "计算机技术";
        Student stu = new Student();
        System.out.println(stu.getInfo());
    }
}

这里写图片描述


1.2.10.2 static定义方法

  (1)static定义的方法不能直接访问非static属性或方法,只能调用static方法或属性;而非static方法可访问static属性或方法,不受任何限制。

public class Test{
    public static void main(String[] args){
        print();
    }

    public void print(){
        System.out.println("IoT小混混");
    }
}

这里写图片描述

  (2)非static定义的方法,必须在类已经明确产生了实例化对象才会分配堆内存空间,才可以使用;而static定义的方法不受实例化控制,可在没有实例化对象的时候访问。

public class Test{
    public static void main(String[] args){
        new Test().print();
    }

    public void print(){
        System.out.println("IoT小混混");
    }
}

这里写图片描述

  (3)主方法使用static定义的原因:编译程序时调用主类,即没有实例化对象,所以需要将主方法定义为static。

转载请注明:CodingBlog » Java语言初步入门基础知识学习和进阶学习和进阶笔记:(十)static关键字

喜欢 (0)or分享 (0)
发表我的评论
取消评论

*

表情