07main()方法、代码块

类的成员之main()方法

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 可以用来修饰哪些结构,分别代表什么意思

posted @   Endless、  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
点击右上角即可分享
微信分享提示