static静态属性--面试题

本文展示了一个简单的Java程序,该程序使用静态变量并在构造函数中对其进行递增操作。通过实例化Book类并打印静态变量的值来演示静态变量与构造函数之间的交互。

public class Book {
static Book book = new Book();//1
static int a;//2
static int b=0;//3

private Book() {//4
    a++;
    b++;
}
public static void main(String[] args) {
    Book book = new Book();
    System.out.println(book.a);
    System.out.println(book.b);
}

}

### Java面向对象编程面试题 #### 对象与类的理解 在Java中,面向对象的核心概念围绕着“对象”。对象是具有特定属性和行为的实体,能接收消息、处理消息并返回结果。所有程序均由多个此类对象组成[^1]。 #### 方法重载 在同一类中定义同名方法时,如果这些方法拥有不同的参数列表——无论是参数类型差异、数量不一或是顺序相异,则认为它们构成了方法重载现象。此特性体现了多态性的某一方面。值得注意的是,尽管重载的方法间允许存在相同的返回类型,但这并不是区分重载的关键依据。下面给出一段展示`sayHello()`方法如何实现重载的例子: ```java public class Father { public void sayHello() { System.out.println("Hello"); } public void sayHello(String name) { System.out.println("Hello " + name); } } ``` 这段代码展示了两个版本的`sayHello()`函数,一个是无参形式,另一个接受字符串类型的参数[^2]。 #### 静态成员的特点及其局限性 对于带有`static`修饰符的变量或方法而言,其并不隶属于任何具体的实例化对象,而是被整个类共享。这意味着一旦该类首次加载完成之后,静态部分即刻可用,并且只会初始化一次。然而,由于静态上下文中无法直接访问非静态资源(因为后者依赖于具体存在的对象),因此静态方法不能调用非静态成员[^4]。 #### 访问控制符的作用 访问控制符用于设定类内部元素对外部可见度级别,从而达到封装的目的。合理运用private、protected以及public等关键字可以帮助开发者更好地隐藏数据细节,仅暴露必要的接口给外部使用者,进而提高系统的安全性与可维护性[^5]。 #### 关键术语解释 - **封装**:指将数据字段及操作逻辑打包在一起的过程,使得外界只能通过指定的方式间接存取内部状态; - **继承**:子类可以从父类那里获得已有的功能而不必重复编写同样的代码片段; - **多态**:同一操作作用于不同类型的对象上会产生不同效果的现象,在运行期间决定实际执行哪个版本的操作称为动态绑定或者后期绑定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值