活动地址:CSDN21天学习挑战赛
目录
main()方法
main()方法的使用
1、main()方法作为程序的入口
2、main()方法也是一个普通的静态方法
3、main()方法也可以作为我们与控制台交互的方式 (之前使用Scanner)
**
代码块
1,概述
1、代码块的作用:通常初始化类、对象
2、代码块只能通过static修饰
3、分类:静态代码块、非静态代码块
2,静态代码块
1、内部可以有输出语句
2、随着类的加载而执行,而且只执行一次
3、作用:初始化类的信息
4、如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行
5、静态代码块的执行优先于非静态代码块
6、静态代码块只能调用静态的属性、静态方法,不能调用非静态的结构
3,非静态代码块
1、内部可以有输出语句
2、随着对象的创建而执行
3、每创建一个对象就执行一次非静态代码块
4、作用:可以在创建对象时,对对象的属性等进行初始化
5、如果一个类中定义了多个非静态代码块,则按照声明的先后顺序执行
6、非静态结构可以调用静态属性、静态的方法、非静态的属性、非静态的方法
4,举例
先创建一个Person类
class Person{ //属性 String name; int age; static String desc = "我是一个人"; //构造器 public Person() { } public Person(String name,int age) { this.name = name; this.age = age; } //非静态代码块 { System.out.println("hello,Block-1"); age = 1; } { System.out.println("hello,Block-2"); //调用非静态结构 age = 1; eat(); //调用静态结构 desc = "我是一个普通人"; info(); } //静态代码块 static { System.out.println("hello,static Block-1"); desc = "我是一个安静的人"; } static { System.out.println("hello,static Block-2"); //调用静态结构 desc = "我是一个沉默的人"; info(); //静态代码块无法调用非静态结构 // eat(); // name = "Tom"; } //非静态方法 public void eat() { System.out.println("吃饭"); } //静态方法 public static void info() { System.out.println("静态方法"); } @Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } }
测试类
public class Test { public static void main(String[] args) { String desc = Person.desc; System.out.println(desc); Person p1 = new Person(); Person p2 = new Person(); System.out.println(p1.age); Person.info(); } }
输出结果
//静态代码块先输出 hello,static block-1 hello,static block-2 静态方法 //静态属性desc输出 我是一个沉默的人 //非静态代码块后输出 hello,block-1 hello,block-2 吃饭 静态方法 //因为创建了两个对象,所以非静态代码块会输出两次 hello,block-1 hello,block-2 吃饭 静态方法 //输出p1的属性、方法和Person类的静态方法 1 吃饭 静态方法
**
关键字:final
final:最终的
1、final可以用来修饰的结构:类、方法、变量
2、final 修饰一个类,此类将无法被其他类继承
例:String类、System类、StringBuffer类
3、final 修饰方法,此方法不可以被重写
例:Object类中getClass();
4、final 修饰变量,此时的"变量"就称为是一个常量
修饰属性,可以考虑赋值的位置有:显式初始化、代码块中初始化、构造器中初始化
修饰局部变量:尤其final修饰形参时,此时形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。 一旦赋值以后,就只能在方法体内使用此形参,不能进行重新赋值。
static final 用来修饰属性:全局常量
提醒:在发布作品前请把不用的内容删掉(活动地址请保留)