Java面向对象进阶7——代码块

简介: Java面向对象进阶7——代码块

一、前言


本文主要讲述Java面向对象中的代码块的知识点


二、局部代码块


1.定义


写在方法体内的代码块


2.使用说明


当一个变量在方法体内定义后,只能在方法体内使用


3.代码实现


public class test1 {
    public static void main(String[] args) {
        int a = 10;
    }
    System.out.println(a);
}


如上面的代码,在main方法里执行完给a赋值为10后,a就会消失,所以输出语句里面的a就无法被输出,会报错


三、构造代码块


1.定义


写在成员位置的代码块


2.作用


可以把多个构造方法中重复的代码提取出来


3.使用说明


在创造本类对象的时候会先执行构造代码块,在执行构造方法


4.代码实现


public class Person {
    String name;
    int age;
    public Person(){
        System.out.println("这里有个人");
    }
    public Person(String name, int age){
        this.name = name;
        this.age = age;
        System.out.println("这里有个人");
    }
}


优化后


public class Person {
    String name;
    int age;
    {
    System.out.println("这里有个人");
  }
    public Person(){
    }
    public Person(String name, int age){
        this.name = name;
        this.age = age;
    }
}


用IDEA测试一下输出顺序


0a5ab0f9c434470f868c4e4b347e77a4.png


5.注意事项


这种书写方法不够灵活,当某一个构造不需要执行这个语句时,就无法使用这种方式了,所以不会使用,建议把相同的语句封装成一个方法,在构造内调用方法


四、静态代码块


1.格式


static{}


2.特点


随着类的加载而加载,且自动触发,只执行一次


3.使用场景


在类的加载时,可以初始化数据


4.代码实现


public class Person {
    String name;
    int age;
    static {
        System.out.println("静态代码块");
    }
    public Person(){
        System.out.println("空参构造输出");
    }
    public Person(String name, int age){
        System.out.println("有参构造输出");
        this.name = name;
        this.age = age;
    }
    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }
    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }
    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }
}
public class PersonTest {
    public static void main(String[] args) {
       Person p1 = new Person();
       Person p2 = new Person("张三",20);
    }
}

4eac88c7c10d4156815a041b7217979f.png


五、结语


代码块在开发中非常常用,也很重要,如果有任何的问题欢迎在评论区交流

相关文章
|
2月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
37 1
|
3月前
|
JavaScript 前端开发 Java
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
欢迎来到我的博客,我是瑞雨溪,一名热爱JavaScript和Vue的大一学生。如果你从我的文章中受益,欢迎关注我,我将持续更新更多优质内容。你的支持是我前进的动力!🎉🎉🎉
36 0
还不明白面向对象? 本文带你彻底搞懂面向对象的三大特征(2024年11月Java版)
|
3月前
|
Java 关系型数据库 数据库
面向对象设计原则在Java中的实现与案例分析
【10月更文挑战第25天】本文通过Java语言的具体实现和案例分析,详细介绍了面向对象设计的五大核心原则:单一职责原则、开闭原则、里氏替换原则、接口隔离原则和依赖倒置原则。这些原则帮助开发者构建更加灵活、可维护和可扩展的系统,不仅适用于Java,也适用于其他面向对象编程语言。
62 2
|
4月前
|
存储 Java 程序员
Java基础-面向对象
Java基础-面向对象
40 0
|
4月前
|
Java 编译器
【一步一步了解Java系列】:子类继承以及代码块的初始化
【一步一步了解Java系列】:子类继承以及代码块的初始化
151 3
|
5月前
|
Java
java中面向过程和面向对象区别?
java中面向过程和面向对象区别?
51 4
|
5月前
|
Java
接口和抽象类【Java面向对象知识回顾②】
本文讨论了Java中抽象类和接口的概念与区别。抽象类是不能被实例化的类,可以包含抽象和非抽象方法,常用作其他类的基类。接口是一种纯抽象类型,只包含抽象方法和常量,不能被实例化,且实现接口的类必须实现接口中定义的所有方法。文章还比较了抽象类和接口在实现方式、方法类型、成员变量、构造方法和访问修饰符等方面的不同,并探讨了它们的使用场景。
接口和抽象类【Java面向对象知识回顾②】
|
5月前
|
Java 编译器
封装,继承,多态【Java面向对象知识回顾①】
本文回顾了Java面向对象编程的三大特性:封装、继承和多态。封装通过将数据和方法结合在类中并隐藏实现细节来保护对象状态,继承允许新类扩展现有类的功能,而多态则允许对象在不同情况下表现出不同的行为,这些特性共同提高了代码的复用性、扩展性和灵活性。
封装,继承,多态【Java面向对象知识回顾①】
|
7月前
|
Java 编译器
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
Java面向对象(三)详解: 封装 | 继承 | 方法重写 | 抽象类
100 2
|
8月前
|
Java 数据安全/隐私保护
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
Java基础手册二(类和对象 对象创建和使用 面向对象封装性 构造方法与参数传递 this关键字 static关键字 继承 多态 方法覆盖 final关键字 访问控制权限修饰符)
49 0

热门文章

最新文章