静态static关键字应用

1.静态static关键字

学生类

package ExtendsTest;/* *@Author:lcc *@Date:2022/3/1-03-01-22:59 *@Description:ExtendsTest *@version:1.0 */ //学生类 public class Student { private int id; private String name; private int age; static String room; //静态static关键字 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; } }

如上学生类所示,如果一个成员变量使用了static关键字,那么这个变量将不再属于对象自己,而是属于所有的类。多个对象共享同一份数据

1 public class Demo01StaticFiled { 2 public static void main(String[] args) { 3 Student st = new Student("张三",32); 4 st.room = "三班"; 5 System.out.println("学号是:"+st.getId()+",年龄是:"+st.getName()+",年龄是:"+st.getAge()+",年级是:"+st.room); 6 Student st1 = new Student("李四",32); 7 System.out.println("学号是 :"+st1.getId()+",年龄是:"+st1.getName()+",年龄是:"+st1.getAge()+",年级是:"+st.room); 8 } 9 }

2.静态static关键字修饰成员方法

 

1 public class MyClass2 { 2 int num; //成员变量 3 static int numStatic; //静态变量 4 5 public void method(){ 6 System.out.println("这是一个成员方法"); 7 // System.out.println(num); //成员方法可以访问成员变量 8 // System.out.println(numStatic); //成员方法可以访问静态变量 9 } 10 public static void methodStatic(){ 11 System.out.println("这是一个静态方法"); 12 // System.out.println(numStatic); //静态方法可以访问静态变量 13 //静态不能方法不能访问非静态变量(重点) 14 // System.out.println(num); 15 // System.out.println(this); 16 } 17 18 }

 

1 package ExtendsTest;/* 2 *@Author:lcc 3 *@Date:2022/3/1-03-01-23:38 4 *@Description:ExtendsTest 5 *@version:1.0 6 */ 7 8 public class Demo02StaticMethod { 9 public static void main(String[] args) { 10 MyClass2 obj = new MyClass2(); //首先创建对象 11 obj.method(); //之后才能使用没有static关键字的内容 12 13 //对于静态方法来说,可以通过对象名进行调用,也可以直接通过类名称来调用 14 obj.methodStatic();//正确,不推荐,这种写法在编译之后也会被java翻译成为“类名称.静态方法名” 15 MyClass2.methodStatic(); //正确,推荐使用 16 17 myMethod();//对于本类当中的静态方法,可以省略类名称 18 Demo02StaticMethod.myMethod(); //与上面完全等效。 19 20 21 22 23 } 24 public static void myMethod(){ 25 System.out.println("自己的方法!"); 26 } 27 }

3.静态static内存图

 

4.静态代码块

1 public class Person { 2 static{ 3 System.out.println("静态代码块执行一次"); //当第一次用到本类时,静态代码块执行唯一一次 4 } 5 public Person(){ 6 System.out.println("构造方法执行一次"); 7 }
public class Demo03Static { public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person(); } } #执行结果: 静态代码块执行一次 构造方法执行一次 构造方法执行一次

5.数组工具Arrays

java.util.Arrays是一个与数组相关的工具类,里面提供了大量静态方法,用来实现数组常见的操作

public static String toString(数组)  :将参数数组变成字符串,(按照默认格式:[元素1,元素2,元素3])

public static void sort(数组):按照默认升序对数组进行排序

1 package ExtendsTest;/* 2 *@Author:lcc 3 *@Date:2022/3/2-03-02-21:50 4 *@Description:ExtendsTest 5 *@version:1.0 6 */ 7 8 import java.util.Arrays; 9 10 public class Demo04Array { 11 public static void main(String[] args) { 12 int[] Array1 = {12,14,54,44}; 13 String intStr = Arrays.toString(Array1); //将int[]数组按照默认格式编程字符串 14 System.out.println(intStr); 15 16 Arrays.sort(Array1); //将int[]数组排序后转为字符串 17 System.out.println(Arrays.toString(Array1)); 18 19 String[] str = {"aaa","bbb","fff","ccc"}; 20 Arrays.sort(str); 21 System.out.println(Arrays.toString(str)); 22 23 } 24 }

6.Arrays字符串倒序排列

1 mport java.util.Arrays; 2 3 public class Demo05practice { 4 public static void main(String[] args) { 5 String str = "jfakgnnjfeinfvnvzffensdgndsl"; 6 //升序排列:sort 7 //必须是一个数组,才能用Arrays.sort方法 8 //String -->数组,用toCharArray 9 char[] chars = str.toCharArray(); 10 Arrays.sort(chars); 11 12 for (int i = chars.length-1; i >=0 ; i--) { 13 System.out.println(chars[i]); 14 } 15 16 } 17 }

 


__EOF__

本文作者cclv
本文链接https://www.cnblogs.com/lcc-lv/p/15957626.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   当时只道是寻常呀  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示