首页 > 其他分享 >静态static关键字应用

静态static关键字应用

时间:2023-09-21 18:01:51浏览次数:39  
标签:String 静态 System 关键字 static println public out

1.静态static关键字

静态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内存图

静态static关键字应用_System_02

 

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 }

 



标签:String,静态,System,关键字,static,println,public,out
From: https://blog.51cto.com/u_16082673/7555776

相关文章

  • layui表格中关键字加粗加红显示
    使layui表格中根据关键词进行加红加粗显示,先看效果前台代码<scripttab="table处理及事件">vartable=layui.table;layui.use(['table'],function(){table.render({id:'ID-table-news',elem:'#ID-table-n......
  • FreeMarker网站静态化的实现
    由于网站首页上板块划分很多,不同板块的数据库查询方式不同,首页内容量巨大,如果按照一般的动态jsp页面的话那么数据库查询将是巨大的开销,会导致首页访问速度的下降。于是考虑将这个首页全部静态化。 整个网站采用struts2+spring+hibernate+freemarker+urlrewrite完成。首页......
  • windows下操作静态库lib(相当于linux下的ar命令)
    linux下有ar可以操作.a文件,windows下提供了lib.exe操作lib文件,从vs的控制台编译环境中可以直接调用。主要有一下几个操作:列出obj::lib/listxxx.lib释放obj:lib/extract:xxx.obj/out:new.objxxx.lib删除obj:lib/remove:xxx.objxxx.lib增加obj:libxxx.objxxx.lib ......
  • 4.3 Java类的定义及定义类时可用的关键字
    类是 Java 中的一种重要的引用数据类型,也是组成Java程序的基本要素,因为所有的Java程序都是基于类的。本节介绍如何定义类。在Java中定义一个类,需要使用 class关键字、一个自定义的类名和一对表示程序体的大括号。完整语法如下:[public][abstract|final]class<class_nam......
  • 单例模式 静态内部类方式
    publicclassFolderV3Singleton{privateFolderV3Singleton(){}privatestaticclassDeviceHolder{privatestaticFolderV3SingletonourInstance=newFolderV3Singleton();}publicstaticFolderV3SingletongetInstance(){......
  • python入门基础(14)--类的属性、成员方法、静态方法以及继承、重载
    上一篇提到过类的属性,但没有详细介绍,本篇详细介绍一下类的属性一、类的属性方法是用来操作数据的,而属性则是建模必不的内容,而且操作的数据,大多数是属性,比如游戏中的某个boss类,它的生命值就是属性(不同级别的boss,有不同的生命值),被攻击方法(不同的攻击,伤害值不同),当boss被攻击......
  • JAVA-基本程序设计结构(类变量、main语法、代码块、final关键字、抽象类)
    1.类变量和类方法1.类变量1.类变量的定义和语法1.类变量(静态变量/静态属性/静态字段)是该类的所有对象共享的变量,任何一个该类的对象去访问它时,取到的都是相同的值,同样任何一个该类的对象去修改它时,修改的也是同一个变量2.定义语法:访问修饰符static数据类型变量名;[推......
  • 【原创】静态路由三种方式(二三层交换机)
                                               Ipdefault-gateway、ipdefault-network、iproute0.0.0.0上述三条命令均可以认为lastresortgateway的配置默认路由的三种方式!可以分成......
  • Centos7 Crond特殊关键字
    1、@reboot 是cron的一个特殊关键字,用于指定在系统启动时执行命令。具体来说,当您在cron的crontab文件中使用 @reboot 关键字,并将它与您希望在系统启动时执行的命令一起使用,那么该命令将会在每次系统启动时自动执行。例如,@reboot/usr/bin/supervisord-c/etc/supervis......
  • Python成员方法、类方法与静态方法的区别
    Python基础教程:3个方面理解Python的类方法与静态方法在Python语言中有如下3种方法:成员方法类方法(classmethod)静态方法(staticmethod)可能很多同学不清楚这3种方法,尤其是后两类方法到底有什么不同。为此,本文将对这3种方法做一次敲骨沥髓的深度剖析。先说一下这3种方法的差异,......