定义一个人的类
每个人姓名和年龄不一样,是变化的,这些我们都能理解
但是,我们选的这几个都是中国人,他们的国籍都是一样的,都是中国,一样的国籍,在每次new的时候,都会在堆内存中开辟空间,每次都会为成员变量country开辟空间
会觉得每个人的国籍都一样的话,每次new出来的时候,应该是默认的,就没有必要再开辟空间
针对于多个对象有着共同的成员变量,值是一样的时候
java针对这样的情况,提供一个关键字给我们使用,这个关键字:static
static:静态的意思,可以修饰成员变量和成员方法
static的特点(可以修饰成员变量和成员方法):
1、被它修饰的东西,是随着类的加载而加载的
可以观察main方法
2、优先于对象存在的
3、被static所在的类创建出来的所有对象共享
举例:所有的中国人的国籍都是中国,都是一样的
什么时候使用静态static关键字呢?
如果某个成员变量是被所有的对象的共享的,那么它就应该被定义为静态。
举例生活中有哪些案例:
哈罗单车(可以用静态进行修饰)
自己的水杯(不可以使用静态进行修饰)
4、可以通过类名进行调用
一般情况下,只要我们看到类中有静态的成员变量或者静态的成员方法
我们一律使用 类名.静态成员 的方式去调用
这样的静态修饰内容,我们一般称之为类成员,类方法,类相关的。
static关键字使用的注意事项:
1、由于被静态修饰的成语是随着类的加载而加载的,所以是优先于对象而存在的。
所以被静态修饰的东西里面是没有this关键字的
2、访问的注意事项:
非静态的方法访问的内容:
成员变量:既可以访问静态的成员变量也可以访问非静态的成员变量
成员方法:既可以访问静态的成员方法也可以访问非静态的成员方法
静态的方法访问的内容:
成员变量:只能访问静态的成员变量,不能访问非静态的成员变量
成员方法:只能访问静态的成员方法,不能访问非静态的成员方法
简单记住一句话:静态的只能访问静态的
讲解main方法的格式:
public static void main(String[] args) {...}
public:公共的,访问权限是最大的。由于main方法是被jvm所调用的,所以权限要足够大。
static:静态的,不需要创建对象,通过类名就可以了,方便jvm的调用
void:曾经我们还使用过,代表的是没有返回值。因为main是由jvm调用的,所以如果有返回值的话,返回给jvm是没有意义的
main:是一个常见的方法入口,很多语言要想执行的话都是需要一个main方法。
String[] args:形参是一个字符串数组,将来进行传参。
1、如何传参?
因为Scanner键盘录入是JDK1.5之后出现,在此之前都用这种main方法传参的方式来进行键盘录入的。早期程序使用命令行操作的,那么我们是不是也可以尝试用命令行做一下。
语句格式:java MainDemo hello world java bigdata xiaohu xxx
帮助文档:
如何制作一个帮助文档呢?需要借助文档注释
1、写一个工具类
2、在工具类中添加文档注释
怎么添加呢?添加哪些东西呢?在哪个位置添加呢? 看ArrayTool类
添加完之后怎么用呢?
命令行语句格式:javadoc -d 目录 -author -version ArrayTool.java
-d <directory> 输出文件的目标目录 (需要自己手动创建!!!)
自己写的类名不能和jdk提供的类中类名一样
Math:Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数
注意:
1、Math类在java.lang包下,所以使用的时候不需要导包
2、Math类,没有构造方法,因为它里面所有的方法都是静态的,既然是静态的,可以直接通过类名的方式进行调用
需要掌握该中的一个方法:
public static double random():[0.0,1.0)
返回一个double值为正号,大于等于0.0 ,小于1.0 。 返回的值是从该范围(大约)均匀分布而伪随机选择的。
代码块:
在Java中,使用{}括起来的代码被称为代码块,根据其位置和声明的不同。
可以分为局部代码块,构造代码块,静态代码块,同步代码块(多线程讲解)
局部代码块:
在方法中出现。使用完之后,就会释放掉,限定局部变量的生命周期,及早释放,提高内存的使用
在同一个方法中,多个局部代码块的执行顺序是自上而下执行的。
构造代码块:
在类中方法外出现;在每次创建对象的时候会执行构造代码块,但是呢,我们创建对象需要使用构造方法
问题:构造方法与构造代码块的执行顺序是什么?在构造方法之前执行
静态代码块:
在类中方法外出现,并加上static修饰;
构造方法,构造代码块,静态代码块:
静态代码块 -- 构造代码块 -- 构造方法
静态代码块的作用:
1、给类进行初始化
2、在程序过程中只执行一次
多个静态代码块之间,执行顺序是自上而下。无论中间有其他的代码块,静态的都会先执行。
(静态代码块):
是随着类的加载而加载的,会优先于对象而存在执行
随着其他静态的一起加载到方法区中。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· winform 绘制太阳,地球,月球 运作规律
· 上周热点回顾(3.3-3.9)