当前位置:首页 > 健康 >

static修饰的是声明还是定义(static修饰函数的意义)

来源:原点资讯(www.yd166.com)时间:2022-11-25 14:36:25作者:YD166手机阅读>>

static关键字含义

1. 为什么要使用static

有一些数据不必要隶属于每个对象, 例如Chinese类的country属性就应该是China,并且所有对象都应该是相同的, 这样的数据就可以声明成static的, 这样的数据就隶属于类, 通过类就可以直接访问, 当然通过对象也可以访问.

有一些方法也是相同的道理, 可以被static修饰, 这样的方法只需要通过类调用即可, 不需要创建对象。

static修饰的是声明还是定义,static修饰函数的意义(1)

2. 使用了static后的变化

使用了static以后的数据不再是不确定的, 就像对象的创建就是不确定的(也可称之为动态), static是确定的, 和动态形成对比, 所以称之为静态。

3.使用范围:

在Java类中,可用static修饰属性、方法、代码块、内部类

4.被修饰后的成员具备以下特点:

① 随着类的加载而加载

② 优先于对象存在

③ 修饰的成员,被所有对象所共享

④ 访问权限允许时,可不创建对象,直接被类调用

static修饰属性

1. 类属性

static修饰的是声明还是定义,static修饰函数的意义(2)

2. 类属性的存储

类属性保存在方法区的类信息数据区中

3. 类属性的使用

类属性可以直接通过类名使用

4. 静态属性的特点

因为隶属于类, 所以静态属性通常是共享数据

static 修饰方法

1. 类方法(class Method)

没有对象的实例时,可以用类名.方法名()的形式访问由static标记的类方法。

在static方法内部只能访问类的static属性,不能访问类的非static属性。

class Person {

private int id;

private static int total = 0;

public static int getTotalPerson() {

The output is: Number of total is 0 Number of total is 1

id ;//非法

return total;

}

public Person() {

total ;

id = total;

}

public static void main(String[] args) {

System.out.println("Number of total is " Person.getTotalPerson());

//没有创建对象也可以访问静态方法

Person p1 = new Person();

System.out.println( "Number of total is " p1.getTotalPerson());

}

}

2. 类方法特点

类方法隶属于类, 不能在其中直接访问对象属性, 如果想要访问对象属性, 必须先创建对象, 通过对象再访问对象属性. 而在非静态方法中, 可以直接调用类方法.

单例设计模式

设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,免去我们自己再思考和摸索。

所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造方法的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。

单例(Singleton)设计模式-饿汉式

public class Single {

//private的构造器,不能在类的外部创建该类的对象

private Single() {}

//私有的,只能在类的内部访问, 并且在声明同时就创建唯一对象

private static Single onlyone = new Single();

//getSingle()为static,不用创建对象即可访问

public static Single getSingle() {

return onlyone;

}

}

public class TestSingle {

public static void main(String args[]) {

Single s1 = Single.getSingle(); //访问静态方法

Single s2 = Single.getSingle();

if (s1==s2){

System.out.println("s1 == s2!");

}

}

单例(Singleton)设计模式-懒汉式

class Singleton {

//1.将构造器私有化,保证在此类的外部,不能调用本类的构造器。

private Singleton(){

}

//2.先声明类的引用

//4.也需要配合static的方法,用static修饰此类的引用。

private static Singleton instance = null;

//3.设置公共的方法来访问类的实例

public static Singleton getInstance(){

// 3.1如果类的实例未创建,那么先要创建,然后返回给调用者:本类。因此,需要static 修饰。

if(instance == null){

instance = new Singleton();

}

//3.2 若有了类的实例,直接返回给调用者。

return instance;

}

}

暂时懒汉式还存在线程安全问题,讲到多线程时,可修复

举例:java.lang.Runtime

static修饰的是声明还是定义,static修饰函数的意义(3)


了解更多内容:

栏目热文

static修饰类有啥用(static如何修饰类)

static修饰类有啥用(static如何修饰类)

static关键字的含义及使用场景static是Java50个关键字之一。static关键字可以用来修饰代码块表示静态代...

2022-11-25 14:25:04查看全文 >>

static的三个作用(什么时候用static方法)

static的三个作用(什么时候用static方法)

一、static代表着什么在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个“伪全局”的概念,在...

2022-11-25 14:36:49查看全文 >>

clothes英语怎么说(clothes的英语正确发音)

clothes英语怎么说(clothes的英语正确发音)

今天分享一篇阅读理解。可以学习衣服的话题时进行同步阅读,也可以作为日常的阅读材料。每日10分钟英语阅读,养成习惯,孩子的...

2022-11-25 14:07:51查看全文 >>

cloth有复数吗(cloth复数是cloths还是clothes)

cloth有复数吗(cloth复数是cloths还是clothes)

在英语中,一个单词可以有多个相关含义;同样的,一个意义也可以由多个单词来表示,它们之间的细微差别就是考点所在了。今天,小...

2022-11-25 14:23:10查看全文 >>

cloth可数还是不可数(cloth的复数为何加es)

cloth可数还是不可数(cloth的复数为何加es)

我们说到衣服的时候,经常第一反应会想到clothes,但是其实它还有两个好朋友cloth和clothing。我们今天就一...

2022-11-25 13:58:39查看全文 >>

static的用途(c语言中static的作用)

static的用途(c语言中static的作用)

根据疫情管控级别及管控严格程度,由低到高依次分为:静态管理<静态管控<封城。什么是静态管理除了医院、药店、生...

2022-11-25 14:05:40查看全文 >>

static关键字有哪些作用(static关键字的作用)

static关键字有哪些作用(static关键字的作用)

C语言代码是以文件为单位来组织的,在一个源程序的所有源文件中,一个外部变量(注意不是局部变量)或者函数只能在一个源程序中...

2022-11-25 14:19:59查看全文 >>

static关键字的作用(c语言static关键字的作用)

static关键字的作用(c语言static关键字的作用)

前言之前讲到final关键字的作用是每次面试的时候我必问求职者的两个问题之一,另外一个问题就是文本会写到的static。...

2022-11-25 14:04:37查看全文 >>

c语言static关键字的作用(c语言static关键字作用)

c语言static关键字的作用(c语言static关键字作用)

嵌入式开发,离不开 C 语言,C语言中有很多语法会直接或间接影响你代码的质量,下面就来讲讲__attribute__ 关...

2022-11-25 14:01:35查看全文 >>

static用法(static的简单用法)

static用法(static的简单用法)

C中 static 的用法C语言中,根据 static 的使用位置可以分为两种:1、修饰函数内部的变量即函数内的静态变量...

2022-11-25 14:16:23查看全文 >>

文档排行