java类与对象课后作业

运行以下代码:

public class Test {
public static void main(String[] args) {
Foo obj1 = new Foo();
Foo obj2 = new Foo();
System.out.println(obj1 == obj2);//?
}
}
class Foo{
int value=100;
}
运行结果为:false
public class Test {
public static void main(String[] args){
Foo obj1=new Foo();}
class Foo {
int value;

public Foo(int initValue) {
value = initValue;
}
}
以上代码出错的原因:无法从 static 上下文引用 'Test.this'。
如果类提供了一个自定义的构造方法,将导致系统不再提供默认构造方法。

java字段初始化的规律有以下三种:直接输入,初始化块,构造函数。

类的构造函数:当创建一个对象时,其构造函数就会自动调用。构造方法必须与类名相同,无返回值。

如果程序员没有定义一个构造函数时,系统会自动定义一个不含参数的“默认构造函数”,在自定义构造函数后就不再产生默认的构造函数了。

对于同一个类来说,可以有很多个构造函数,也就是所谓方法重载的运用。其之间可以相互调用。

类的初始化块:指的是在类中用{}括起来的几行代码,可以直接作为类的成员。多用于类中变量的初始化。

在执行类成员的时候默认给出的值。

静态初始化块的执行的顺序:

定义初始化块时使用static修饰符,变成静态初始化块,静态初始化块时类相关的,系统将在类初始化阶段执行静态初始化块,而不是在创建对象时执行。

静态初始化块总是比普通初始化块先执行。与普通初始化块类似的是,系统在类初始化阶段执行静态初始化块时,不仅会执行本类的静态初始化块,而且还会一直上溯到java.lang.Object类,先执行java.lang.Object类中的静态初始化块,然后执行其父类的静态初始化块,最后才执行该类的静态初始化块。经过这个过程,才完成了该类的初始化过程。只有当类初始化完成后,才可以在系统中使用这个类,包括访问类method、类Field,或者用这个类来创建实例。

在静态方法中访问类的实例成员

代码实现:

public class Test {
public static void main(String[] args) {
x w;
w=new x();
x.show(w);
}
}
class x
{
int num=10;
static void show(x n)
{
System.out.println(n.num);
}
}
posted @   Espen  阅读(85)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示