JAVA-封装-静态属性

1、使用

  1.static

  2.用来修饰属性、方法、内部类、代码块

  3.称为类属性,静态属性,类方法,静态方法

  3.不需要实例化,直接用类名或静态成员名调用

2、特点

  1.静态属性对于类的所有实例是共享的,在内存中只有一个(类似全局变量)

  2.静态方法可以直接调用静态成员,不能直接调用内部的实例成员

  3.静态方法不能直接使用this、super关键字

  4.静态代码块只在类被封装时调用一次,常用于初始化属性

时间: 2024-11-13 06:34:51

JAVA-封装-静态属性的相关文章

java中静态属性和和静态方法的继承问题 以及多态的实质

首先结论是:java中静态属性和和静态方法可以被继承,但是没有被重写(overwrite)而是被隐藏. 静态方法和属性是属于类的,调用的时候直接通过类名.方法名完成的,不需继承机制就可以调用如果子类里面定义了静态方法和属性,那么这时候父类的静态方法 或属性称之为“隐藏”,你如果想要调用父类的静态方法和属性,直接通过父类名.方法名或变量名完成,至于是否继承一说,子类是有继承静态方法和属性,但是 跟实例方法和属性不太一样,存在“隐藏”的这种情况. 多态之所以能够实现是依赖于 继承 接口和 重写 .重

Java类静态属性、静态块、非静态属性、非静态块、构造函数在初始化时的执行顺序

前言 今天在看Android ContentProvider实现的时候,突然想到了Java类在new的过程中,静态域.静态块.非静态域.非静态块.构造函数的执行顺序问题.其实这是一个很经典的问题,非常考察对Java基础知识的掌握程度.很多面试过程中相信也有这样的问题,趁着周末有时间复习一下. 结论 这里先把整理好的结论抛给大家,然后我在写个程序来验证我们的结论.在Java类被new的过程中,执行顺序如下: 实现自身的静态属性和静态代码块.(根据代码出现的顺序决定谁先执行) 实现自身的非静态属性和

java之静态属性和静态方法

前言 静态属性和方法必须用static修饰符 静态属性和非静态属性的区别: 1.在内存中存放位置不同   所有带static修饰符的属性或者方法都存放在内存中的方法区  而非静态属性存放在内存中的堆区 2.出现时机不同   静态属性或方法在没创建对象之前就已经存在  而非静态属性在创建对象之后才存在 3.静态属性是在某个类中的所有对象是共享的 4.生命周期不同  静态属性在类消失之后才销毁  而非晶态属性在对象销毁之后才销毁 5.用法: a.静态属性可以直接通过类名直接访问  非静态属性不能通过

Java静态属性、静态方法、非静态属性、非静态方法的继承问题简单了解

package com.book.web.controller; /**  * 父类  * @author liweihan  *  */ public class Parent { public String normalStr = "父类非静态属性"; public static String staticStr = "父类静态属性"; public String changeStr = "父类-变量"; public static Stri

从JVM内存管理的角度谈谈JAVA类的静态方法和静态属性

在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我们从JVM的内存管理原理的角度来认识Stack和Heap,并通过这些原理认清Java中静态方法和静态属性的问题. 一般,JVM的内存分为两部分:Stack和Heap.(stack和heap都是位于RAM中的) stack(栈)是JVM的内存指令区.stack管理很简单,push一定长度字节的数据或者指令,stack指针压栈相应的字节位移:pop一定字节长度数据或者指令,stack指针弹栈.stack的速度很快,管理很简单,并

php函数、类和对象以及类的封装、继承、类的静态方法、静态属性

1.函数     php内置函数可以直接使用,如果没有安装php扩展即可     自定义函数 //函数function 函数名 function dump($var = null){ //支出默认参数值 echo '<pre/>'; var_dump($var); } 2.类(class)和对象( new Obj) <?php //定义一个人的类,现在还不是对象 class Person { //私有属性 private $eye = '大眼睛'; private $mouth = '小

Java封装性及属性的封装

一.封装的概念  1.封装性是面向对象思想的三大特征之一. 2.封装就是隐藏实现细节,仅对外提供访问接口. 封装有: 属性的封装,方法的封装,类的封装 ,组件的封装,模块化的封装,系统级封装 二.封装的好处  1.模块化 2.信息隐藏 3.代码重用 4.插件化易于调试 5.具有安全性 三.属性的封装  也叫属性的私有化. 例: 封装之前: class Person{     String name; int age; } 封装之后: class Person{     private Strin

[JAVA][从0开始的JAVA随笔]静态(static)属性的使用方法及注意事项

除了内部类之外,类一般不能具有静态属性. 如下定义了一个外部类Static_test和一个内部静态类Static_class: class Static_test{ Static_test(){ s_int = 1; } public static int s_int; public static void s_func(){ System.out.println("s_int = "+s_int); } } public class Hello{ Hello(){ } public

Java反射之反射权限和静态属性的赋值

当一个类中的属性是private的时候,需要将 fieldName.setAccessible(true); 当一个类的属性是静态属性的时候,则直接 itemListField.set(null, arrayList); 参考例子: // 获取类Class mediaItemClazz = Class.forName("io.rong.imkit.plugin.image.PictureSelectorActivity$MediaItem");// 获取属性 Field uriFiel

JAVA代码静态检测之PMD

今天再次想启动Java代码静态检测工具的利用问题,主要再次尝试用了PMD,发现不少代码编码规范问题和好的代码建议,并学到不少自己之前没有注意到的Java方便的基础知识,感觉很不错,把相关明白的好的规则回忆总结下,再以后编码过程中要把随时利用代码静态检查工具,用好代码静态检查工具养成习惯.今天用到的PMD检查规则如下: If表达式必须使用{},无论有多少语句 While循环必须使用{},无论有多少语句 IfElse表达式必须使用{} For循环语句必须使用{} 如果方法返回boolean,那么注意