zoukankan      html  css  js  c++  java
  • 修饰符(static、final、abstract)第一篇

    三个修饰符:

    一、static:

    作用域:

    1. 属性

    1.1 静态属性不必要创建新对象,可直接用类调用

    1.2 其值发生改变,则类中的值也会随之而变并延伸到其他对象中

    例子:

    class Animals {
    // /1.static 修饰属性
    static String a = "静态属性值";
    String b = "非静态属性值";
    }

    Animals  ani=new Animals ();

    ani.a="修改";

    ani.b="修改非";

    Animals  ani1=new Animals ();

    ani1.a;//"修改";

    ani1.b;// "非静态属性值";

    1.3 static 不能修饰局部变量属性值

    2. 方法

    2.1 访问是static修饰的方法不必要创建新对象访问,可直接用类调用

    2.2 在static修饰的方法中,只能访问:

    2.2.1 全局变量中定义的static属性

    2.2.2 static方法

    2.2.3 其方法中定义的局部变量

    2.3 不能使用this关键字

    2.4 静态方法的覆写不能实现不了多态

    3.修饰代码块

    3.1 作用:

    提高程序的性能

    3.2 使用:

    独立于方法

    3.2 特点:

    只在类加载时执行一次

    可参考


    练习代码君:

    package com.jacob.javase;


    /*
     * 修饰符:
     *    static详探
     */
    class Animals {
    // /1.static 修饰属性
    static String a = "静态属性值";
    String b = "非静态属性值";


    public Animals() {
    // Illegal modifier for parameter a1; only final is permitted
    // 1.1、static String a1="";原因static不能修饰局部变量
    }


    // 2.static 修饰方法
    public static void eat() {
    // Cannot use this in a static context
    // 2.1、this.a;//静态方法中不能使用this关键字
    // int b=0;//方法中局部变量的值可访问
    // 2.2、静态方法中只能调用静态方法(具体可参考main方法)
    System.out.println("Animals静态方法");
    // 2.3、静态方法中只能访问类全局中的静态属性
    // System.out.println(b);
    }


    // 静态代码块:1.在类加载时实现一次 2.使用起来是独立于方法 3.提高程序的性能
    static {
    System.out.println("静态代码块");
    }


    }


    class Cat extends Animals {
    // 2.4、 静态方法不能实现多态
    public static void eat() {
    System.out.println("cat静态方法");
    }
    }


    public class ModifierStatic {
    public static void main(String[] args) {
    Animals ani = new Animals();
    ani.a = "修改后的静态属性值";
    ani.b = "修改后的非静态属性值";
    Animals ani1 = new Animals();
    // 1.2、说明对象对类静态属性(类变量)值的改变,其类中值会相应改变(因为静态存储在静态数据区,可直接调用)
    System.out.println("ani1中的a:" + ani1.a + " || " + "ani1中的b:" + ani1.b);
    // 1.3、静态属性值可不必创建对象,直接用类调用,原因同上
    System.out.println("Animals中的a:" + Animals.a);
    Animals a2 = new Cat();
    a2.eat();// ——Animals静态方法
    Animals.eat();// —— Animals静态方法(静态方法同样可以用类直接调用)
    }
    }












  • 相关阅读:
    ZJNU 1138
    ZJNU 1133
    架构设计:系统存储(21)——图片服务器:详细设计(1)
    架构设计:系统存储(20)——图片服务器:需求和技术选型(2)
    架构设计:系统存储(19)——图片服务器:需求和技术选型(1)
    架构设计:系统存储(18)——Redis集群方案:高性能
    大端模式和小端模式
    阶段性纠错邀请
    架构设计:系统存储(17)——Redis集群方案:高可用
    Android深入浅出之Binder机制
  • 原文地址:https://www.cnblogs.com/xieji233/p/6155636.html
Copyright © 2011-2022 走看看