zoukankan      html  css  js  c++  java
  • Java基础——关键字

    1.static

      可以用来修饰属性、方法、代码块(初始化块)、内部类

      (1)static修饰属性(类变量) 

        其余的叫实例变量

        1.由类创建的对象,都共用这一个属性

        2.当其中一个对象对此属性进行修改,会导致其他对象对此属性的 一个调用。 vs 实例变量(非static修饰的属性,各自有各自的一套副本 )

        3.类变量是随着类的加载而加载的。独一份

        4.静态的变量可以直接通过“类.类变量”的形式来调用

        5.类变量的加载早于对象,而实例变量是随着对象的创建而被加载的。

        6.类变量存在于静态域中。

      (2)static修饰方法(类方法):
        1.随着类的加载而加载,独一份
        2.可以直接通过“类.类方法”调用
        3.在类方法内部可以调用静态的属性或静态的方法,但是不能调用非static的属性或方法。反之,非静态的方法可以调用静态的属性或方法

    注:静态的方法内,是不可以有this或super关键字的!静态的结构(static的属性、方法、代码块、内部类)的生命周期早于非静态的结构,同时被回收也要晚于非静态的结构

    2.final关键字:最终的,可以用来修饰类、属性、方法
      1.final修饰类:这个类就不能被继承
      2.final修饰方法:这个方法不能被重写
      3.final修饰属性:此属性就是一个常量,习惯上,常量用大写字符表示
      此常量在哪里赋值:1.此常量不能使用默认初始化。2.可以显式的赋值,或在代码块、构造器中赋值也可以,但是不可以在方法中赋值。

      全局变量:变量用static final修饰

    3.abstract:抽象的,可以用来修饰类、方法
      1.abstract修饰类:抽象类
        1)不可被实例化
        2)但是有构造器(凡是类都有构造器)
        3)抽象方法所在的类,一定是抽象类
        4)抽象类中可以没有抽象方法

    abstract class Person(){//抽象类
        String name;
        public abstract void eat();//抽象方法
        public abstract void walk();//同上
        public Person(){}//空构造器
        public Person(String name){//含参的构造器
        this.name = name;
        }
    }

      2.abstract修饰方法:抽象方法
        1)格式:没有方法体,包括{} 如public abstract void eat();
        2)抽象方法只保留方法的功能,具体的执行,交给继承抽象类的子类,由子类重写抽象方法
        3)若子类继承了抽象类,并重写了所有的抽象方法,则此类是一个“实体类”,即可以实例化
        4)若子类继承了抽象类,只重写了部分抽象方法,意味着此类中仍有抽象方法,则此类必须声明为抽象的!

    注:abstract不能用来修饰属性、构造器、private、final、static

  • 相关阅读:
    C++之友元机制(友元函数和友元类)
    C++之全局函数和成员函数互相转换
    C++之面向对象初探----对象管理模型(关键是this指针)
    C++之const类成员变量,const成员函数
    C++之static类成员,static类成员函数
    c++之函数值传递和引用传递解析----关键在于理解函数return的实现机制(内存分配)
    C++之new和delete
    C++之构造函数、参数列表、析构函数
    C++之匿名对象解析
    C结构体、C++结构体、C++类的区别
  • 原文地址:https://www.cnblogs.com/SkyeAngel/p/7793588.html
Copyright © 2011-2022 走看看