首页 > 其他分享 >了解static修饰

了解static修饰

时间:2022-08-26 20:12:44浏览次数:63  
标签:变量 静态 Person 了解 static 修饰 public

staic

静态变量

某些特定的数据在内存中只有一份,而且能被一个类的所有实例对象共享。可以使用 类名.变量名 的形式来访问。也可以先实例化对象在用对象,变量名访问

class Student{
   static String schoolName;
}
public class test{
   public static void main(String[] args){
       Student.schoolName="STUT";//不创建对象就可以访问变量
       Student s1 = new Student();//创建学生对象
       Student s2 = new Student();
       System.out.println("我的学校:"s1.schoolName);//两个对象可以共享静态变量
       System.out.println("我的学校:"s2.schoolName);
  }
}

如果没有static修饰的变量,则应该给每一个对象都要进行赋值操作

static关键字只用于修饰成员变量,不能用于修饰局部变量

静态方法

可以在不创建对象的情况下调用某个方法,使方法和对象解绑.

用 类名.方法名() 来调用方法

class Person{
   public static hello(){
       System.out.println("hello!");
  }  
}
public class test{
   public static void main(String[] args){
       Person.hello();//直接用类名调用
  }
}

非static修饰方法需要通过实例化方法调用

静态代码块

当类被加载时,静态代码块会执行一次,因为一个类只加载一次,所以静态代码块只执行一次,通常使用静态代码块对类的成员变量进行初始化

class Person{
   static String country;//静态变量
   static{//静态代码块
       country = "China";//静态代码块中只能访问静态成员
       System.out.println("Person类中的静态代码执行了");
  }
}
public static class test{
   static{
       System.out.println("测试类中的静态代码执行了");
  }
   public static void main(String[] args){
       Person p1 = new Person();
       Person p2 = new Person();
  }
}

结果 - 测试类中的静态代码执行了

Person类中的静态代码执行了

 

在静态代码块中只能访问static修饰的成员

内部类
总结
1. static方法:方法体内可以调用其他静态方法,不能调用非静态方法;只可以访问方法外部的static变量;不能定义静态变量,可以定义非静态变量。
1. 非static方法,方太体内不能定义static变量;能调用static方法;能调用非static方法。
1. static关键字只能用于修饰成员变量,不能修饰局部变量(如形参、方法体内部变量)。
1. 静态内部类中只能访问外部类的静态成员。
1. 静态内部类中可以定义静态成员,而非静态的内部类中不允许定义静态成员。

标签:变量,静态,Person,了解,static,修饰,public
From: https://www.cnblogs.com/bmmxz/p/16629040.html

相关文章

  • 学习:python 了解多线程
    在计算机处理工作时,有时需要多个任务并行处理进程:是对计算机的程序的依稀运行过程的秒数简单的来说编写完毕的代码,在没有运行的时候,称为程序正在运行着的代码,这个运行......
  • 一篇文章带你了解Sql注入
    网络安全学习交流群:755412787常用的mysql语句创建mysql用户#‘host’的值为指定哪些ip可以登录,值为‘%’表示任何人可以登录,值为'localhost'仅允许本机登录CREATEUSE......
  • 一文了解.Net的CLR、GC内存管理
    一文了解.Net的CLR、GC内存管理微软官方文档对内存管理和CLR的概述什么是托管代码?托管代码就是执行过程交由运行时管理的代码。在这种情况下,相关的运行时称为公共......
  • 静态static关键字修饰成员方法和内存图
    静态static关键字修饰成员方法一旦使用static修饰成员方法,那么就成为了静态方法,静态方法不属于对象,而是属于类的如果没有static关键字,那么必须首先创建对象,然后通过对象......
  • static
    C语言中static的作用1voidtest()2{3intb=1;4b++;5printf("b=%d\n",b);6}7intmain()8{9inta=0;10while(a<......
  • Gerrit了解
    转自:http://www.uml.org.cn/codeNorms/201901033.asp1.介绍Gerrit实际上一个Git服务器,它为在其服务器上托管的Git仓库提供一系列权限控制,以及一个用来做CodeReview是Web......
  • 了解单例模式
    单例模式单例模式是什么?单例设计模式(SingletonDesignPattern)如果一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模......
  • 静态static关键字概述和修饰成员变量
    静态static关键字概述  静态static关键字修饰成员变量案例:Student7类:privateintid;privateStringname;privateintage;staticStringroom;privatestaticin......
  • 你真的了解java的泛型吗?
    1.java可以声明泛型数组吗?​ 我们都知道在java中声明一个普通数组,但是你知道如何声明一个泛型数组吗?​ 先来看一个简单的例子,Animals是Cat的父类,思考下Animals[]和Cat[......
  • php变量 global/static
    通常,函数内定义的变量,在函数内生效,函数执行完毕销毁global全局变量,函数外可以调用 functiontestGlobal(){  global$a;  $a=1;}//testGlobal();/......