zoukankan      html  css  js  c++  java
  • java学习笔记(11-static关键字)

    1.static关键字

    1.1 说明:

    • 被static修饰的成员变量属于类,不属于这个类的某个对象。(也就是说,多个对象在访问或修改static修饰的成员变量时,其中一个对象将static成员变量值进行了修改,其他对象中的static成员变量值跟着改变,即多个对象共享同一个static成员变量)
    • 被static修饰的成员可以并且建议通过类名直接访问
    • 静态的加载优先于对象,随着类的加载而加载

    1.2 简单使用

    package com.daigua11;
    /*
     * static:是一个关键字,用于修饰成员变量和成员方法
     * static的特点:
     *          被所有的对象所共享
     *          可以使用类名调用
     *          静态的加载优先于对象
     *          随着类的加载而加载
     * 
     */
    public class StaticDemo {
        public static void main(String[] args) {
            Person.graduateFrom = "北京大学";
            
            Person p = new Person();
            p.name = "小苍同学";
            p.age = 18;
            //p.graduateFrom = "传智学院";
            p.speak();
            
            Person p2 = new Person();
            p2.name = "小波同学";
            p2.age = 20;
            //p2.graduateFrom = "传智学院";
            p2.speak();
        }
    }
    
    class Person {
        String name;
        int age;
        static String graduateFrom;//毕业院校
        
        public void speak() {
            System.out.println(name + "---" + graduateFrom);
        }
    }
    

    1.3 注意点

    • 静态成员只能直接访问静态成员
    • 非静态成员既可以访问非静态成员也可以访问静态成员
    package com.daigua11;
    
    /*
    * static的注意事项:
    *           静态方法:
    *               可以调用静态的成员变量
    *               可以调用静态的成员方法
    *               不可以调用非静态成员变量
    *               不可以调用非静态成员方法
    *               静态方法只能调用静态的成员
    *           非静态方法:
    *               可以调用静态的成员变量
    *               可以调用静态的成员方法
    *               可以调用非静态的成员变量
    *               可以调用非静态的成员方法
    *       
    *   静态的方法中是否有this这个对象?没有的
    *               
    * 
    */
    public class StaticDemo2 {
        public static void main(String[] args) {
            Student.graduateFrom = "北京大学";
            Student.study();
        }
    }
    
    class Student {
        String name;
        int age;
        static String graduateFrom;// 毕业院校
    
        public static void study() {
             System.out.println(graduateFrom);
             sleep();
             
            // 无法访问到eat这个方法
            // System.out.println(name);
            // eat();
    
        }
    
        public static void sleep() {
            System.out.println("sleep");
    
        }
    
        public void eat() {
            System.out.println("eat");
    
            System.out.println(graduateFrom);
            sleep();
    
        }
    
    }
    

    1.4 应用-Math类

    package com.daigua11;
    
    public class MathDemo {
        public static void main(String[] args) {
            // Math:包含了一些基本的数学运算方法
            // static double PI
            // System.out.println(Math.PI);
    
            // static double abs(double a) :返回绝对值
            // System.out.println(Math.abs(15));
            // System.out.println(Math.abs(-10));
    
            // static double ceil(double a) 天花板 向上取整
            // System.out.println(Math.ceil(1.2));
            // System.out.println(Math.ceil(1.6));
            // static double floor(double a) 地板 向下取整
            // System.out.println(Math.floor(1.2));
            // System.out.println(Math.floor(1.6));
    
            // static long round(double a) :四舍五入
            // System.out.println(Math.round(1.2));
            // System.out.println(Math.round(1.6));
    
            // static double max(double a, double b)
            // System.out.println(Math.max(3, 4));
    
            // static double pow(double a, double b) :返回第一个参数的第二个参数次幂
            // System.out.println(Math.pow(3, 2));
    
            // static double random() :返回一个随机数,大于零且小于一
            System.out.println(Math.random());
    
        }
    }
    
  • 相关阅读:
    1.4.2.3. SETUP(Core Data 应用程序实践指南)
    1.4.2.2. PATHS(Core Data 应用程序实践指南)
    1.4.2.1. FILES(Core Data 应用程序实践指南)
    1.4.2. 实现 Core Data Helper 类(Core Data 应用程序实践指南)
    1.4.1. Core Data Helper 简介(Core Data 应用程序实践指南)
    1.4. 为现有的应用程序添加 Core Data 支持(Core Data 应用程序实践指南)
    1.3.2. App Icon 和 Launch Image(Core Data 应用程序实践指南)
    1.3.1. 新建Xcode项目并设置故事板(Core Data 应用程序实践指南)
    php验证邮箱是否合法
    如何使js函数异步执行
  • 原文地址:https://www.cnblogs.com/daigua/p/java-xue-xi-bi-ji-11static-guan-jian-zi.html
Copyright © 2011-2022 走看看