07main()方法、代码块
main()方法的使用说明
1.main()方法作为程序的入口
2.mian()方法也是一个普通的静态方法
3.main()方法可以作为我们与控制台交互的方式。(之前:使用Scanner)
public class MainDemo {
public static void main(String[] args) {
for (int i = 0; i < args.length; i++){
System.out.println("*****" + args[i]);
int num = Integer.parseInt(args[i]);
System.out.println("#####"+ args[i]);
}
}
}
类的成员之代码块
代码块(或初始化块)
1.代码块的作用:用来初始化类、对象
2.代码块如果有修饰的话,只能使用static
3.分类:静态代码块 vs 非静态代码块
4.静态代码块
内部可以有输出语句
随着类的加载而执行,且只执行一次
作用:初始化类的信息
如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行
静态代码块的执行要优先于非静态代码块的执行
静态代码块只能调用静态的属性、静态的方法,不能调用非静态的结构
5.非静态代码块
内部可以有输出语句
随着对象的创建而执行
每创建一个对象,就执行一次非静态代码块
作用:可以在创建对象时,对对象的属性等经行初始化
如果一个类中定义了多个非静态代码块,则按照声明的先后顺序执行
非静态代码块可以调用静态的属性、静态的方法,也可以调用非静态的属性、非静态的方法
public class BlockTest {
public static void main(String[] args) {
String desc = Person.desc;
Person person = new Person();
Person person2 = new Person();
}
}
class Person{
//属性
String name;
int age;
static String desc = "我是一个人";
//构造器
public Person(){
}
public Person(String name, int age) {
this.name = name;
this.age = age;
}
//静态代码块
static{
System.out.println("hello,static block");
desc = "我是一个好人";
info();
}
//非静态代码块
{
System.out.println("hello,block");
age = 1;
eat();
desc = "woshiyigehaoren";
info();
}
//方法
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;
}
public void eat(){
System.out.println("吃");
}
public static void info(){
System.out.println("我是一个快乐的人");
}
}
①默认初始化
②显示初始化/⑤在代码块中赋值
③构造器中初始化
④有了对象后,通过"对象.属性" 或 "对象.方法"的方式,进行赋值
执行的先后顺序: ① - ② / ⑤ - ③ - ④
类的关键字之final 关键字
final:最终的
1.final 可以用来修饰的结构:类、方法、变量
2.final 用来修饰一个类:此类不能被其他类所继承。
比如:String类、System类、StringBuffer类
3.final 用来修饰方法:此方法不能被重写
比如:Object 中的getClass();
4.final 用来修饰变量:此时的"变量"就称为一个常量
4.1final修饰属性:可以考虑赋值的位置有:显示初始化、代码块中初始化、构造器中初始化
4.2 final修饰局部变量
尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时,给常量形参赋一个实参。一旦复制以后,就只能在方法体内使用此形参,但不能进行重新赋值。
static final 用来修饰属性:全局常量
题目练习
1.static修饰的属性,相较于实例变量,有哪些特别之处(>3点)
随着类的加载而加载;早于对象的创建;只要权限允许,可以通过 对象.static属性 的方式惊醒调用;存在于方法区的静态域
2.final 可以用来修饰哪些结构,分别代表什么意思
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器