Java 构造函数与修饰符详解:初始化对象与控制权限

Java 构造函数

Java 构造函数 是一种特殊的类方法,用于在创建对象时初始化对象的属性。它与类名相同,并且没有返回值类型。

构造函数的作用:

  • 为对象的属性设置初始值
  • 执行必要的初始化操作
  • 提供创建对象的多种方式

构造函数的类型:

  • 默认构造函数: 无参数的构造函数,如果用户没有明确定义构造函数,则 Java 编译器会自动创建一个默认构造函数。
  • 带参数的构造函数: 可以为构造函数添加参数,以便在创建对象时传入初始值。

示例:

1public class Main { 2 int x; 3 4 // 默认构造函数 5 public Main() { 6 x = 5; 7 } 8 9 // 带参数的构造函数 10 public Main(int y) { 11 x = y; 12 } 13 14 public static void main(String[] args) { 15 Main myObj1 = new Main(); // 调用默认构造函数 16 System.out.println(myObj1.x); // 输出 5 17 18 Main myObj2 = new Main(10); // 调用带参数的构造函数 19 System.out.println(myObj2.x); // 输出 10 20 } 21}

构造函数的注意事项:

  • 构造函数不能被重写。
  • 构造函数不能被声明为 abstract 或 final。
  • 构造函数可以抛出异常。

一些额外的说明:

  • 可以使用构造函数来执行对象的初始化操作,例如:

    • 打开数据库连接
    • 加载配置文件
    • 注册事件监听器
  • 可以使用多个构造函数来提供创建对象的多种方式,例如:

    • 使用默认值创建对象
    • 使用参数创建对象
    • 使用克隆创建对象

Java 修饰符

Java 修饰符 用于控制类、属性、方法和构造函数的访问权限和行为。它们可以分为两组:

  1. 访问修饰符:
  • public: 意味着代码对所有类可访问。
  • private: 意味着代码只能在声明的类内部访问。
  • default: 意味着代码只能在同一包中访问。
  • protected: 意味着代码在同一包和子类中可访问。
  1. 非访问修饰符:
  • final: 意味着类不能被继承,属性和方法不能被重写。
  • static: 意味着属性和方法属于类,而不属于对象。
  • abstract: 意味着类不能用于创建对象,方法没有主体,必须由子类提供。
  • transient: 意味着在序列化包含它们的对象时,属性和方法将被跳过。
  • synchronized: 意味着方法一次只能由一个线程访问。
  • volatile: 意味着属性的值不会在本地线程缓存,总是从“主内存”读取。

示例:

访问修饰符:

1// public类可以被任何类访问 2public class Main { 3 4 // private属性只能在 Main 类内部访问 5 private int x = 10; 6 7 // default方法只能在同一个包中访问 8 void myMethod() { 9 System.out.println("This is a default method."); 10 } 11 12 // protected方法可以在同一个包和子类中访问 13 protected void myProtectedMethod() { 14 System.out.println("This is a protected method."); 15 } 16 17 public static void main(String[] args) { 18 Main myObj = new Main(); 19 System.out.println(myObj.x); // 错误,无法访问私有属性 20 myObj.myMethod(); // 可以访问 default 方法 21 myObj.myProtectedMethod(); // 可以访问 protected 方法 22 } 23}

非访问修饰符:

1public class Main { 2 3 // final属性不能被修改 4 final int y = 20; 5 6 // static方法可以在不创建对象的情况下访问 7 static void myStaticMethod() { 8 System.out.println("This is a static method."); 9 } 10 11 // abstract方法没有主体,必须由子类提供 12 abstract void myAbstractMethod(); 13 14 public static void main(String[] args) { 15 // y = 30; // 错误,无法修改 final 属性 16 myStaticMethod(); // 可以访问 static 方法 17 // myAbstractMethod(); // 错误,无法直接调用抽象方法 18 } 19} 20 21// 子类继承 Main 类并提供抽象方法的主体 22class Child extends Main { 23 24 @Override 25 void myAbstractMethod() { 26 System.out.println("This is the implementation of myAbstractMethod."); 27 } 28}

一些额外的说明:

  • 可以使用多个修饰符来修饰类、属性、方法和构造函数。例如,public final 表示类是公开的并且不能被继承。
  • 修饰符是 Java 语言的重要组成部分,它们可以帮助您控制代码的访问权限和行为。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

点赞
收藏

评论区

加载中...

相关推荐

java成员变量的初始化

类变量(static变量,不需要实例化对象也可以引用)实例变量(非static变量,需要实例化对象)局部变量(类的成员函数中的变量)初始化方式:构造函数初始化变量声明时初始化代码块初始化java自动初始化(在构造函数执行之前执行) java保证所有变量被使用之前都是经过初始化的(声明并且定义过,被赋值

一文了解 Java 中的构造器

一文了解Java中的构造器C引入了构造器(constructor,也叫构造函数)的概念,它是在创建对象时被自动调用的特殊方法。Java也采用了构造器,并且还提供了一个垃圾收集器(garbagecollector),当不再使用内存资源的时候,垃圾收集器会自动将其释放。构造器定义在Java中,可以通过编写构造器来确保每个对象的初始化。但是这

Java 类及类的构造方法

类类是一个模子,确定对象将会拥有的特性(属性)和行为(方法)。类的特点  类时对象的类型  具有相同属性和方法的一组对象的集合构造方法作用就是对类进行初始化。如果你没有定议任何构造方法的形式,Java会为你取一个不带任何参数的构造函数,那么你产生类的对像时只能用不带参数的方法,如:classa{}//没

Java构造方法与析构方法实例剖析

Java构造方法类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量。在创建对象时,会自动调用类的构造方法。构造方法定义规则:Java中的构造方法必须与该类具有相同的名字,并且没有方法的返回类型(包括没有void)。另外,构造方法一般都应用public类型来说明,这样才能在程序任意的位置创建类的实例-

C++中构造函数和析构函数

构造函数定义它是一种特殊的方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。另外,一个类可以有多个构造函数,我们可以根据其参数个数的不同或参数类型的不同来区分它们(这就是构造函数的重载)特点1.构造函数的命名必须和类名完全相同;2.构造函数的功能主要用于在类的对象创建时定义

Java面向对象之构造器

\toc\Java面向对象之构造器利用构造器确保初始化初始化问题是关系编程方式是否安全的一个重要的问题。功能:在创建对象时执行初始化。在Java中,每个类至少有一个构造器。格式如下:修饰符构造器名(参数列表){...执行体