Static.final修饰符、super关键字及常量与变量

一.Static

static 静态修饰符,用来修饰类的属性或方法

如果类的某个属性,不管创建多少个对象,属性的存储空间只有唯一的一个,那么这个属性就应该用static修饰,称为静态属性。

static属性可以使用对象调用,也可以直接用类名调用,静态属性是类的所有对象共享的,即不管创建了多少个对象,静态属性在内存中只有一个。

static块和static的属性以及方法的性质是相同的,用static修饰的代码块表示静态代码块,当Java虚拟机加载类时,就会执行该代码块。

静态块只有在类加载的时候被执行一次,不管创建多少个对象,都不会再执行。

二.final

final 用于声明属性,方法和类

属性:定义就必须直接赋值或者在构造方法中进行赋值,并且后期都不能修改。

方法:定义必须有实现代码,并且子类里不可被覆盖。

类:不能被定义为抽象类或是接口,不可被继承

当final修饰属性时,基本数据类型的属性将成为常量,不能被修改

final属性赋值在声明时同时赋值,往往与static一起使用。声明时不赋值,必须在构造方法中逐一赋值。总的原则:保证创建每一个对象的时候,final属性的值是确定的

final修饰属性、局部变量,值不能被修改

修饰类,不能被继承

修饰方法,不能被子类覆盖

三.super

super关键字为父类的引用,在程序中的主要用途:
     在自类构造方法中调用父类的结构方法,super语句只能出现在子类构造方法体的第一行

当子类方法体中的局部变量或子类的成员变量与父类成员变量同名时,即子类局部变量覆盖父类成员变量时用“super.成员变量名”来引用父类成员变量

当子类的成员方法覆盖了父类的成员方法时,也就是子类和父类有相同的方法定义(方法体可以不同),此时,用“super.方法名(参数列表)”的方式访问父类的方法

 与this区别,this是指当前对象,super通常指父类

若子类的成员变量或方法与父类的成员变量或方法同名,子类的成员变量或方法优先等级高,所以子类的成员变量或方法就隐藏了父类的成员变量或方法,但若我们要用父类中的成员变量或方法,就得使用super

四.方法覆盖

子类可以重写父类中某一个方法,称为方法覆盖,也称方法重写,是继承中非常重要的知识点。如果子类需要修改从父类继承到的方法的方法体,就可以使用方法覆盖。

原则:同名,同参,同返回值,访问权限不能缩小

五.继承

继承是指一个类的定义可以基于另外一个已经存在的类,即子类基于父类,从而实现父类代码的重用,子类能吸收已有类的数据属性和行为,并能扩展新的能力。

形式:【访问修饰符】 【修饰符】  子类名  extends  父类名  {子类体}

六.常量与变量的总结

在类中声明的变量或常量叫属性,或者叫成员变量,如name、salary、count

在方法中声明的变量叫局部变量,或者临时变量。

属性可以使用四种权限修饰符修饰,

局部变量不可以 属性可以使用static修饰,局部变量不可以

属性可以使用final修饰,局部变量也可以

属性的生命周期很长,随着类加载或者创建对象被初始化,直到没有对象引用才回收

局部变量生命周期很短,执行某个方法时临时被初始化,方法结束即被回收

属性可以在整个类中使用,局部变量只在当前方法中使用

属性都有默认的初始化值,如引用类型都是null,整型是0等,局部变量不被自动初始化,必须手工初始化,如taskname手工指定为null才为null,而属性name默认就为null

时间: 2024-10-14 17:35:42

Static.final修饰符、super关键字及常量与变量的相关文章

.NET 基础 一步步 一幕幕 [注释、命名规则、访问修饰符、数据类型、常量、变量]

注释.命名规则.访问修饰符.数据类型.常量.变量 话说一个不会写注释的程序猿的不是一个好吃货,我们本篇就从注释开始说起好了. 在C#中有三种注释: 第一种:单行注释  以//开头,后面的就是注释内容 –  //单行注释 –  第二种:多行注释  以 /*开头   */结束 之间的是注释内容 –  /*  */多行注释 –  第三种:文档注释  在方法或类的上一行输入 ///就会产生 –  /// –  ///文档注释 –  /// –  So....截图就是这三种注释的用法了. 再来说说命名规则

JAVA基础-栈与堆,static、final修饰符、内部类和Java内存分配

Java栈与堆 堆:顺序随意 栈:后进先出(Last-in/First-Out). Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new.newarray.anewarray和multianewarray等指令建立,它们不需要程序代码来显式的释放.堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据.但缺点是,由于要在运行时动态分配内存,存取速度较慢. 栈的优势是

static修饰符与final修饰符

■ static修饰符与final修饰符: ★ static修饰符: 1. 修饰的对象: 类中的成员(属性[静态变量或类变量]和方法[静态方法或类方法]) 2. 静态属性的特点: 1. 静态变量被所有对象共享 2. 随着类的加载而加载,随着类的消失而消失,和对象的创建无关 3. 可以直接被类名调用 3. 静态方法的特点: 1. 静态方法优先于对象存在,在静态方法中无法访问与对象相关的实例变量(这时候对象还没有创建,其属性也就没有) 2. 静态方法无法访问实例变量 3. 静态方法可以访问静态变量

类成员(static)和final修饰符

在Java类里只能包含成员变量.方法.构造器.初始化块.内部类(包括接口.枚举)5种成员,类成员是用static来修饰的,其属于整个类. 当使用实例来访问类成员时,实际上依然是委托给该类来访问类成员,因此即使某个实例为null,它也可以访问它所属类的类成员. public class NullAcessStatic { public static void test() { System.out.println("static修饰的类方法"); } public static void

Java中final与 static final 修饰的常量的区别

喵喵开车,新手上路,多多关照.有任何错误请在评论区指出. ...........................................我是万恶的分界线( ? ?ω?? )?......................................... final:用来修饰类,变量,方法: final修饰的类不能有子类,也不能被继承. final修饰的变量是一个常量,不能重新赋值. final修饰的方法不能重写 现在就说明final修饰的常量① 与 static final 修饰的常

并不是static final 修饰的变量都是编译期常量

见代码 public class Test { public static void main(String[] args){ // 情况一 基本数据类型 //System.out.println(Outer.Inner.n); // 输出结果 : 10 //情况二 //Outer outer = Outer.Inner.outer; // 输出结果 : 静态内部类 //情况三 System.out.println(Outer.Inner.str); // 输出结果: 静态内部类 abc //情

java基础语法 (标识符,修饰符,关键字)

一.标识符 定义: 对各种变量.对象.数组.集合.方法.类和包等要素命名时使用的字符序列. (1)组成规则:①英文大小写字母 ②数字 ③$和_ (2)注意事项:①不能以数字开头 ②不能使用java中的关键字 ③区分大小写 (3)常用的命名规则 ①包                  全部小写                                                                                      举例:cn.itcast.com.b

修饰符和关键字和继承(一)

一.静态修饰符----static static可以修饰内部类.块.属性.方法,经static修饰过的元素储存地址唯一,不会改变 1 public class Test{ 2 static int a=1; //修饰属性 3 static{ //修饰块 4 //语句 5 } 6 static void fun(){ //修饰方法 7 //方法体 8 } 9 public static class Intest{ //修饰内部类 10 //属性+方法等 11 } 12 } 二.final修饰符 f

Java中的(构造方法、方法重载、final修饰符使用及继承和抽象)

构造方法: 构造方法的名称和类名相同,没有返回类型,参数列表(类型.个数)不同 方法重载:成员方法和构造方法都可以进行重载 方法名相同但是参数列表(类型,个数)不同,成为方法的重载. 继承:直支持单继承,一个类只能有一个父类 继承要用extends关键字修饰 public class Dog extends Pet{ //方法体 } 子类调用父类公用的成员变量和方法需使用关键字super 如super.方法名 super(成员变量,成员变量....) 方法重写: 方法重写的需求: 1.重写方法和