Static变量与代码块
* static:是一个关键字,用于修饰成员变量和成员方法
* static的特点:
* 被所有的对象所共享
* 可以使用类名调用
* 静态的加载优先于对象
* 随着类的加载而加载
* static的注意事项:
* 静态方法:
* 可以调用静态的成员变量
* 可以调用静态的成员方法
* 不可以调用非静态成员变量
* 不可以调用非静态成员方法
* 静态方法只能调用静态的成员
* 非静态方法:
* 可以调用静态的成员变量
* 可以调用静态的成员方法
* 可以调用非静态的成员变量
* 可以调用非静态的成员方法
*
* 静态的方法中是否有this这个对象?没有的
//Math:包含了一些基本的数学运算方法
//static double PI
System.out.println(Math.PI);
//static double abs(double a) :返回绝对值
System.out.println(Math.abs(15));
System.out.println(Math.abs(-10));
//static double ceil(double a) 天花板 向上取整
System.out.println(Math.ceil(1.2));
System.out.println(Math.ceil(1.6));
//static double floor(double a) 地板 向下取整
System.out.println(Math.floor(1.2));
System.out.println(Math.floor(1.6));
//static long round(double a) :四舍五入
System.out.println(Math.round(1.2));
System.out.println(Math.round(1.6));
//static double max(double a, double b)
System.out.println(Math.max(3, 4));
//static double pow(double a, double b) :返回第一个参数的第二个参数次幂
System.out.println(Math.pow(3, 2));
//static double random() :返回一个随机数,大于零且小于一
System.out.println(Math.random());
//构造代码块:提取构造方法中的共性,每次创建对象都会执行,并且在构造方法执行之前执行
//静态代码块:随着类的加载而加载,只加载一次,加载类时需要做的一些初始化,比如加载驱动
以下代码执行顺序:
* BlockTest静态代码块执行 --- BlockTest的主函数执行了 --- Coder静态代码块执行 --- Coder构造代码块执行 --- Coder无参空构造执行
* Coder构造代码块执行 --- Coder无参空构造执行
public class BlockTest {
static {
System.out.println("BlockTest静态代码块执行");
} {
System.out.println("BlockTest构造代码块执行");
} public BlockTest(){
System.out.println("BlockTest无参构造执行了");
} public static void main(String[] args) {
System.out.println("BlockTest的主函数执行了");
Coder c = new Coder();
Coder c2 = new Coder();
}
} class Coder { static {
System.out.println("Coder静态代码块执行");
} {
System.out.println("Coder构造代码块执行");
} public Coder() {
System.out.println("Coder无参空构造执行");
} }
最新文章
- ios 关于UIView 的multipleTouchEnabled 和 exclusiveTouch
- Fresco 使用笔记(一):加载gif图片并播放
- CSS3弹性伸缩布局(一)——box布局
- Hosting Your Own NuGet Feeds
- Working with Other Node Types
- 通过autofac教你彻底明白依赖解耦(二)理论结合实践 - 大侠.Net
- 如何获取App当前版本号
- htm5 user-scalable 的意思
- Android自定义processor实现bindView功能
- react中对于context的理解
- MySQL 5.7开启二进制日志注意事项
- 任务调度工具Quartz入门笔记
- redis安装,第一天
- 微服务架构day01
- python 一个函数让你决定你的二维码
- ES6 --- JS异步编程的几种解决方法及其优缺点
- 01 Linux简介
- 大于2t的磁盘分区,并格式化ext4挂载
- SpringBoot2 【关于:Table 'XXX.hibernate_sequence' doesn't exist】
- 【转】OPenGL MFC绘图