• 21 static 静态的使用及特点


    /*
    * static:他是一个关键字,用来修饰成员变量和成员方法
    * static特点:
    * 被所有的对象所共享
    * 可以直接使用类名来调用
    * 静态所修饰的成员加载优先于对象,随着类的加载而加载

    注意事项:

    静态方法:
    可以调用静态的成员变量
    可以调用静态的成员方法
    只能在静态的方法中调用静态的成员

    不可以调用非静态的成员变量
    不可以调用非静态的成员方法

    非静态方法:
    可以调用静态的成员变量

    */

    public class StaticDemo {
        public static void main(String[] args) {
            //Person.graduateFrom = "传智"; //static修饰的成员可以直接使用类名来调用。静态所修饰的成员加载优先于对象,随着类的加载而加载
    Person p = new Person(); p.age = 18; p.name = "xiaoming"; p.graduateFrom = "cz"; p.speak(); Person p1 = new Person(); p1.age = 20; p1.name = "xiaohong"; // p1.graduateFrom = "cz"; //被所有的对象所共享 p1.speak(); } } class Person { String name; int age; // String graduateFrom; static String graduateFrom;//static修饰的成员可以直接使用类名来调用。静态所修饰的成员加载优先于对象,随着类的加载而加载
    public void speak() { System.out.println(name + "----" + graduateFrom); } }

      打印结果

     

    public class StaticDemo2 {
        public static void main(String[] args) {
            Student.graduateFrom = "cz";
            Student.study();//由于方法和参数都是静态的可以直接用类名调用
    // Student.method(); Student s = new Student(); s.method(); s.eat(); } } class Student { String name; int age; static String graduateFrom; public static void study() { System.out.println(graduateFrom); //静态方法不能调用非静态的方法和变量 // System.out.println(name); // method(); sleep(); } public static void sleep() { System.out.println("sleep"); } public void eat() { //非静态的方法可以调用静态的方法和变量 System.out.println(graduateFrom); System.out.println(name);
         sleep(); }
    public void method() { System.out.println("method"); } }

    打印结果

  • 相关阅读:
    JavaScript 之 typeof
    Octotree Chrome安装与使用方法
    支持主流MySQL中间件的数据迁移工具ora2mysql
    Eclipse搭建SpringBoot之HelloWorld
    Spring Boot插件spring tool suite安装及使用
    树的前中后序遍历非递归实现
    判断是否是完全二叉树
    Leetcode 437_path sum III todo
    DFS回溯只在递归基回溯————leetcode112
    Leetcode 94 Binary Tree Inorder
  • 原文地址:https://www.cnblogs.com/longesang/p/11131276.html
Copyright © 2020-2023  润新知