【static + 代码块+toString打印对象】

简介: 【static + 代码块+toString打印对象】

文章目录


static成员

举例:一个班的学生,在实例化每个人的名字,年龄,学号等学员信息时都不一样,但他们的班级是同一个,那需要每个学生都写这个教室对象吗,这样代码量太繁琐了,如果只需要写一次ClassRoom,让大家共享它,这就需要static去修饰ClassRoom。

static修饰成员变量

static修饰的成员变量,称为静态成员变量

静态成员变量最大的特性:不属于某个具体的对象,是所有对象所共享的

注意(重点):

  1. 通过类名调用静态成员变量或者静态成员方法,它们不依赖于对象
  2. 在静态方法中不能调用非静态成员变量或者非静态成员方法,例如this
  3. 被static修饰的变量只能是成员变量(类里),不能是局部变量(方法里)

static成员变量初始化

静态成员变量的初始化分为两种:就地初始化 和 静态代码块初始化。

  1. 就地初始化
    就地初始化指的是:在定义时直接给出初始值
  2. 静态代码块初始化

代码块

1.构造代码块

  1. 静态代码块
    使用static定义的代码块称为静态代码块。一般用于初始化静态成员变量。

static做题的注意事项 (重点):

1 静态代码块先执行

然后执行构造代码块

最后执行对应的构造方法

  1. 被static修饰的代码 只执行1次,不管后面再new几个对象,都是无效的。(重点)
  2. 如果成员变量有好几个static修饰,会遵循从上到下的顺序计算(重点)

对象的打印

写show方法打印对象

调用toString打印对象

不想写show方法打印对象,可以调用toString打印对象

鼠标右键

总结

今天就学到这,学太多反而有点混乱了,效率也不高,最后这个代码块和打印对象看了四五遍才看懂,不是说很难理解,可能太累了,效率变慢了。

相关文章
|
Java
深入理解static的作用以及被static修饰的变量、方法、块
static关键字有以下三种使用方法: 1.被static修饰的变量属于静态变量,类变量,可以通过类名,变量名直接引用,不需要进行new一个新类。 2.被static修饰的方法属于静态方法,类方法,可以通过类名,方法名直接引用,而不需要new出来一个对象 3.静态块,用于初始化一个类的时候进行一些操作,静态变量、静态方法和静态代码块都只执行一次,而且只在初始化的时候执行。
261 1
|
设计模式 算法 Java
Object 类详解--代码块--单例设计模式
Object 类详解--代码块--单例设计模式
49 0
|
Java
Java 类对象(Object)内容(属性值)转字符串(toString)
Java 类对象(Object)内容(属性值)转字符串(toString)
174 0
|
Java 数据库连接 mybatis
java中打印父类的toString
java中打印父类的toString
println输入和toString方法的重写
println输入和toString方法的重写
114 0
|
存储 索引
String 类的基本用法及String 类的常见操作(一)
String 类的基本用法及String 类的常见操作
String 类的基本用法及String 类的常见操作(一)
|
存储 Java 对象存储
Java常用类、String的特性、String对象的创建、字符串的特性、String使用陷阱、符串相关的类:String常用方法如toLowerCase()、compareTo、substring
Java常用类、String的特性、String对象的创建、字符串的特性、String使用陷阱、符串相关的类:String常用方法如toLowerCase()、compareTo、substring
Java常用类、String的特性、String对象的创建、字符串的特性、String使用陷阱、符串相关的类:String常用方法如toLowerCase()、compareTo、substring
静态代码块 static{}
静态代码块 static{}
222 0
静态代码块 static{}
|
Java C++
【C++ 语言】C++字符串 ( string 类 | 创建方法 | 控制台输出 | 字符串操作 | 栈内存字符串对象 | string* )(一)
【C++ 语言】C++字符串 ( string 类 | 创建方法 | 控制台输出 | 字符串操作 | 栈内存字符串对象 | string* )(一)
666 0
【C++ 语言】C++字符串 ( string 类 | 创建方法 | 控制台输出 | 字符串操作 | 栈内存字符串对象 | string* )(一)