Java静态static关键字用法。Arrays工具类的用法
1、静态static关键字修饰成员变量
如果一个成员变量用了static关键字,那么这个变量不再属于对象自己,而是属于所在的类。多个对象共享同一份数据。
Student类:
public class Student {
private int id;
private String name;
private int age;
static String room;
private static int idCounter = 0;
public Student() {
this.id = ++idCounter;
}
public Student(String name, int age) {
this.name = name;
this.age = age;
this.id = ++idCounter;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
调用Student类的方法类:
public class Demo01StaticField {
public static void main(String[] args) {
Student one = new Student("王雷",23);
one.room = "101教室";
Student two = new Student("陈雷",21);
System.out.println("姓名:" + one.getName()
+ ",年龄:" + one.getAge() + ",教室:" + one.room
+ ",学号:" + one.getId());
System.out.println("姓名:" + two.getName()
+ ",年龄:" + two.getAge() + ",教室:" + two.room
+ ",学号:" + two.getId());
}
}
2、静态static关键字修饰成员方法
一旦使用static修饰成员方法,那么这就成为了静态方法。静态方法不属于对象,而是属于类的。
如果没有static关键字,那么必须首先创建对象,然后通过对象调用它。
如果有static关键字那么不需要创建对象,直接就能通过类名称进行调用。
静态方法强烈建议使用类名称调用。
注意事项:
1、静态只能直接访问静态,不能直接访问非静态。因为在内存当中是先有的静态,后有的非静态内容。“先人不知道后人,后人知道先人。”
2、静态方法当中不能用this。原因:this代表当前对象,通过谁调用的方法,谁就是当前对象。
3、静态代码块
静态代码块的格式:
public class 类名称{
static{
//静态代码块的内容
}
}
特点:当第一次用到本类时,静态代码执行唯一的一次。静态内容总是优先于非静态,所以静态代码块比构造方法先执行。
Person类:
public class Person {
static {
System.out.println("静态代码块执行。");
}
public Person() {
System.out.println("构造方法执行。");
}
}
用法类:
public class Demo04Static {
public static void main(String[] args) {
Person one = new Person();
}
}
运行结果:
public class Demo04Static {
public static void main(String[] args) {
Person one = new Person();
Person two = new Person();
}
}
运行结果:
静态方法只会执行一次,构造方法每新建对象就会执行。
静态代码块的典型用途:
用来一次性地对静态成员变量进行赋值。
4、Arrays工具类
java.util包
java.util.Arrays是一个与数组相关的工具类,里面提供了大量的静态方法用来实现数组常见的操作。
1、public static String toString(数组):将参数数组变成字符串,(按照默认格式:[元素1, 元素2, 元素3, …] )
2、public static void sort(数组):按照默认升序(从小到大)对数组的元素进行排序。
备注:如果是字符串,sort默认按照升序从小到大。
如果是字符串,sort默认按照字母升序。
如果是自定义的类型,那么这个自定义的类需要有Comparable或者Comparator接口的支持。(后面学习)
本文地址:https://blog.csdn.net/Gaoju12138/article/details/109268448
上一篇: 【JAVA语言学习】Java面向对象Ⅲ
下一篇: 如果张飞没死,夷陵之战会是什么结果?