zoukankan      html  css  js  c++  java
  • 关键字--static

    类属性,类方法的设计思想:

    • 类属性作为该类各个对象之间共享的变量。在设计类时,分析哪些类属性不因为对象的不同而改变,将这些属性设置为类属性。相应的方法设置为类方法。
    • 如果方法与调用者无关,则这样的方法通常被声明为类方法,由于不需要创建对象就可以调用类方法,从而简化了方法的调用。
    • 有哪些方法不想因为对象的不同而频繁通过new对象方式去调用方法,方法就写为static。
    package day08;
    /**
     * 关键字 static
     * 使用范围:在java类中,可用static修饰属性,方法,代码块,内部类
     *
     * 被修饰后的成员具备以下特点:
     * 随着类的加载而加载------>类加载之后,静态的方法或者属性就能用了
     * 优先于对象存在------>不用new就能用
     * 修饰的成员,被所有的对象共享
     * 访问权限允许时,可不创建对象,直接被类调用
     * 因为不需要实例就可以访问static方法,因此static方法内部不能有this(也不能有super)
     */
    public class Chinese {
        static String country;//类变量,不用实例化就可直接通过(类名.属性名)使用,被所有这个类的实例化对象所共享。也可以叫做静态变量。
        String name;//实例变量,只有实例化才能使用,不能共用
        String sex;//实例变量,只有实例化才能使用,不能共用
        public static int count=0;
        public Chinese(){
            Chinese.count = count+1;
        }
        public static void showCount(){
            System.out.println("打印了"+Chinese.count+"Chinese.count");
        }
    
        public static void test(){
            System.out.println("这是一个静态方法");
        }
        //抽象为工具类
        public static boolean siEmpyy(String s){
            boolean flag = false;
            if(s != null && !s.equals("")){
                flag = true;
            }
            return flag;
        }
    }
    
    package day08;
    
    public class Text {
        public static void main(String[] args) {
    //        Chinese c = new Chinese();
    //        Chinese.country ="中国";
    //        //c.country = "中国";
    //        c.name = "zhangsan";
    //        c.sex = "nan";
    //        String s = null;
    ////        每次有一个新人物,就必须new一个新对象Chinese,
    ////        有没有办法,让所有对象都是用相同国籍。static!
    //        System.out.println(Chinese.country);
    //        System.out.println(Chinese.siEmpyy(s));
            Chinese c1 = new Chinese();
            System.out.println(Chinese.count);
            Chinese c2 = new Chinese();
            System.out.println(Chinese.count);
            Chinese c3 = new Chinese();
            System.out.println(Chinese.count);
            Chinese c4 = new Chinese();
            System.out.println(Chinese.count);
            Chinese c5 = new Chinese();
            System.out.println(Chinese.count);
            Chinese.showCount();
    
        }
    }
    
    中国
    false
    2
    3
    4
    5
    6
    打印了6Chinese.count
  • 相关阅读:
    排序比较与总结
    Oracle误删恢复
    DSP TMS320C6000基础学习(4)—— cmd文件分析
    NYOJ 488 素数环
    Oracle常用语句记录
    Cocoa编程开发者手册
    Unity3d物体模型(实现旋转缩放平移自动旋转)
    django 创建一个通用视图
    ContentResolver + SqliteOpenHelper + ContentProvider 理解
    线性回归,logistic回归和一般回归
  • 原文地址:https://www.cnblogs.com/zhahu/p/11931389.html
Copyright © 2011-2022 走看看