学习java的static

embedded/2024/11/13 9:04:05/

1.static是什么,用来做什么?

static-静态,可以修饰成员变量和成员方法。

2.成员变量按照有无static修饰,分为两种

类变量:有static修饰,属于类,在计算机中,会被类的全部对象所共享。它属于类,与类一起加载一次,在内存中只有一份。

实例变量:无static修饰,对象的变量,属于每个对象。每个对象中都有一份。

如何访问类变量:

推荐使用:类名.类变量

还有一种方法:对象.类变量

如何访问实例变量:

对象.实例变量

3.static修饰成员变量(类变量)的应用场景。

在我们开发的时候,如果遇到某个数据只需要一份,并且希望能够被共享(访问,修改),则该数据可以定义成类变量来记住。

注意:在某一个类中,访问其他类里面的类变量,必须带类名访问

java">public class student {static String name;int age;
}
java">public class demo1 {public static void main(String[] args) {//类变量的使用//推荐使用student.name = "张三";//对象.类变量(不推荐)student s = new student();s.name = "李四";student student = new student();student.name = "王五";System.out.println(s.name);System.out.println(student.name);//实例变量的用法s.age=23;student.age=25;System.out.println(s.age);System.out.println(student.age);}
}

4.成员方法的分类

类方法:有static修饰的成员方法,属于类。访问方法:推荐使用类名.类方法();不推荐使用对象名.类方法();

实例方法:无static修饰的成员方法,属于对象。访问方法:对象.实例方法();

java">public class Student {public static  void print(){System.out.println("hello");System.out.println("hello");}public static void study() {System.out.println("study");System.out.println("study");}
}
java">public class demo2 {public static void main(String[] args) {Student student = new Student();//类方法的使用//推荐使用:类名.方法名()Student.study();//不推荐使用student.study();}
}

5.类方法的应用场景

类方法最常见的应用场景是用来做工具类。

什么是工具类?

工具类中的方法都是一些类方法,每个方法都是用来完成一个功能,工具类是给开发人员共同使用的。

使用类方法来设计根据类的好处:提高代码的复用,调用方便,提高了开发的效率。

工具类没有创建对象的需求,建议将工具类的构造器进行私有。

为什么不使用实例方法呢?

因为实例方法需要创建对象来调用,会浪费内存。

6.使用static的几点注意事项

1.类方法中可以直接访问类的成员,不可以直接访问实例对象。

2.实例方法既可以直接访问类成员,也可以直接访问实例成员。

3.实例方法中可以直接出现this关键字,类方法中不可以出现this关键字。

7.代码块

静态代码块

格式: static{};

特点:类加载时自动执行,由于类只会加载一次,所以静态代码块叶只会执行一次。

作用:完成类的初始化,例如:对类变量的初始化赋值。

实例代码块

格式:{}

特点:每次创建对象时,执行实例代码块,并在构造器前执行。

作用:和构造器一样,都是用来完成对象的初始化的,例如:对实例变量进行初始化赋值。


http://www.ppmy.cn/embedded/30233.html

相关文章

Python IDE(集成开发环境)有很多,以下是一些常用的选项

Python IDE(集成开发环境)有很多,以下是一些常用的选项: PyCharm:PyCharm被认为是普及率和使用率最高的一款Python IDE集成开发环境工具。它功能强大,支持多种开发模式,如科学计算、Web开发、数…

selenium 4.20.0 访问外网问题

保存信息:There was an error managing chromedriver (error sending request for url (https://storage.googleapis.com/chrome-for-testing-public/124.0.6367.91/win64/chromedriver-win64.zip)); using driver found in the cache 报错原因:因为sel…

css折叠的导航栏

导航栏点击多个的效果 <div class"cont"><!-- 第一个导航 --><div class"nav_a"><input type"checkbox" name"chk" id"chk1"><label for"chk1"><div class"plus">…

selinux 基础知识

目录 概念 作用 SELinux与传统的权限区别 SELinux工作原理 名词解释 主体&#xff08;Subject&#xff09; 目标&#xff08;Object&#xff09; 策略&#xff08;Policy&#xff09; 安全上下文&#xff08;Security Context&#xff09; 文件安全上下文查看 先启用…

SQLite如何处理CSV 虚拟表(三十七)

返回&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLite的DBSTAT 虚拟表&#xff08;三十六&#xff09; 下一篇:SQLite的扩展函数Carray()表值函数(三十八) ​ RFC4180格式是一种文本文件格式&#xff0c;被用于表格数据间的交互&#xff0c;也可将表格数据转化…

KVM安装Ubuntu24.04简要坑点以及优点

本机环境是ubuntu22.04的环境&#xff0c;然后是8核16线程 ssd是500的 目前对于虚拟机的选择&#xff0c;感觉kvm确实会更加流畅&#xff0c;最重要的一点是简洁&#xff0c;然后实际安装效果也比较的好&#xff0c;如果对于速度方面希望快一点&#xff0c;并且流畅一点的话这…

C#窗体控件DataGridView

目录 简介 基本框架 案例 案例1,往DataGridView中添加新列。 案例2&#xff0c;使用列名删除DataGridView中的某一列。 案例3&#xff0c;人手选中某一列&#xff0c;然后进行删除。 案例4&#xff0c;添加新的一行。 案例5&#xff0c;删除选中行。 案例6&#xff0c…

二分专题----如何优雅的写出二分

目录 一、如何编写二分 二、题目练习 1、二分查找----点击跳转题目 2、在排序数组中查找元素的第⼀个和最后⼀个位置 点击跳转题目 3、搜索插⼊位置----点击跳转题目 4、x的平⽅根----点击跳转题目 5、⼭峰数组的峰顶---点击跳转题目 6、寻找峰值----点击跳转题目 7、…