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

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

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变量名命名规则

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

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

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

Java代码保护方法之一:ProGuard_java如何保护源码

ProGuard是一个开源的Java程序代码压缩、优化和混淆工具,是目前Java代码保护最常用的工具。“瘦身高手”+“优化小能手”+“混乱大师”。1、压缩(瘦身高手):检查并删除没有被使用的类、字段、...

python变量_python变量命名规则

什么是变量?变量是存放数据值的容器。Python 没有声明变量的命令。首次为其赋值时,才会创建变量。用现实世界来解释一下什么是变量,比如我要盛一碗小米粥,这个时候我需要一个碗才能完成这件事情,这个碗就...

Java初学者常见的10类问题_java入门例子

对于Java初学者来说,在学习过程中经常会遇到一些常见的问题。以下是Top 10常见问题及其解决方案:1. 环境配置问题问题:Java开发环境(如JDK、IDE)配置不正确。解决方案:确保正确安装了J...

Java关键字有哪些?_java关键字有哪些及其作用

Abstract 抽象的一个Java语言中的关键字,用在类的声明中来指明一个类是不能被实例化的,但是可以被其它类继承。一个抽象类可以使用抽象方法,抽象方法不需要实现,但是需要在子类中被实现break一...