初识Java—(二十四)Java类成员_java 类

createh54周前 (02-18)技术教程27

static关键字修饰的成员就是类成员,其中有类变量Field、类方法、静态初始化块。static修饰的类成员属于整个类,不属于单个实例。

6.3.1 理解类成员

在Java类里只能包含Field、方法、构造器、初始化块、内部类(接口、枚举)5种成员,其中static可以修饰Field、方法、初始化块、内部类。用static修饰的成员就是类成员。类成员属于整个类,而不是属于单个对象。

类Field既可以通过类来访问,也可以通过类的对象来访问。但是通过类的对象来访问类Field时,实际上访问的并不是该对象所拥有的Field,而是类所拥有的Field。可以理解为:当通过对象来访问类Field时,系统会在底层转换为通过该类来访问类Field。

举例1:

public class Test {
public static int a = 1;
public void run(){
a++;
System.out.println(a);
}
public static void main(String[] args) {
Test t1 = new Test();
t1.run(); //
Test t2 = new Test();
t2.run(); //
}
}

类方法也是类成员的一种,类方法属于类的,通常直接使用类作为调用者来调用类方法,但是可以使用对象来调用类方法,与类Field类似。

静态初始化块也是类成员的一种,静态初始化块用于执行类的初始化动作,在类的初始化阶段,系统会调用该类的静态初始化块来对类进行初始化。一旦该类初始化结束后,静态初始化块将永远不会获得执行的机会。

对于static关键字而言,有一条非常重要的规则:类成员不能访问实例成员。因为类成员是属于类的,类成员的作用域比实例成员更大,完全可能出现类成员已经初始化完成,但实例成员还不曾初始化的情况。如果允许类成员访问实例成员将会引发大量的错误。

6.3.2 单例类

在Java中,类的构造器默认为public的权限,允许任何类自由的创建该类的对象。但是在某些情况下一些类自由的创建该类的实例对象没有任何意义,比如说:一个系统的窗口管理器、一个数据库引擎访问点,此时如果在系统中为这些类创建多个对象就没有太大的实际意义。

所以在这种情况下,可以设计一个类只能创建一个实例,则这个类被称为单例类。

创建单例类的步骤:

1、 使用private关键字修饰构造器

2、 提供一个public的static的类方法调用构造器

3、 创建一个static的成员变量来保存类对象,同时判断对象是否已经创建

举例1:

package com.langsin.test;
public class Singleton {
private Singleton(){
}
private static Singleton single = null;
public static Singleton getInstance(){
if(single==null){
single = new Singleton();
}
return single;
}
public static void main(String[] args) {
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
System.out.println(s1==s2);
}
}

相关文章

Java变量、常量、运算符、数组_java常量与变量例子

变量(Variables)在 Java 中,变量用于存储程序运行时所需的数据(The data required during the runtime)。变量的声明(The declaration o...

Java变量_java变量名命名规则

变量如果按照大部分的书上来说,在程序运行过程中可以改变的量称之为变量。常量就是程序运行中不可改变的量就是常量。变量准确的来说就是存储的名称,如果你要把数据存到内存里,你就需要选择一个数据类型,而且还要...

Java SE 基础教程—JDK的下载安装及环境变量的配置(win10详细版)

1.什么是JDKSun公司提供了一套Java开发环境,简称JDK(Java Development Kit) 它是整个Java的核心,其中包括Java编译器、Java运行工具、Java文档生成工具、J...

4.Java变量_java 变量

变量(Variables )每个程序都使用值。变量允许您通过将值分配给一个名称来存储值。该名称可用于在程序的后面引用该值。例如,在游戏开发中,您可以使用一个变量来存储玩家得分的点数。每个变量都有一个类...

Java基础知识总结_java基础知识概括

一、Java 在当今的软件开发领域,Java 无疑占据着举足轻重的地位。无论是开发大型企业级应用、Web 应用,还是安卓移动端应用,Java 的身影无处不在。比如,我们日常使用的电商 APP,其后台可...