java学习第六周

本文介绍了Java编程中的关键概念,包括构造器的作用,如何确保对象初始化,以及构造器与默认构造函数的关系。此外,详细阐述了方法重载的规则,特别是参数类型、个数和顺序的影响。还探讨了this关键字的用法,包括在对象方法中引用当前对象,以及在构造器中的特殊含义。最后,解释了在构造器中如何调用其他构造器的规则。
摘要由CSDN通过智能技术生成

java学习第六周

1.用构造器确保初始化

class Rock{}new Rock();

在创建对象时new Rock( )将会为对象分配存储空间。
Rock()是构造方法。
构造器的名称必须与类名完全相同。
默认构造函数不接受任何参数,类的设计者不写,系统也会自动创建。一但设计者编写了构造函数,默认构造函数就不存在了。
在java中“初始化”和“创建”捆绑在一起,两者不能分离。
构造函数没有返回值。

public static void main(string[] args)
{int i;
system.out.println(i);//为初始化,报错
Dog d=new dog();
d. xxx();
}
class Dog{
int i;//i是对象成员,未赋值时会默认初值为0
private void xxx()
{system. out.println(i);
int j;
system. out. println(j);//报错,未初始化
}
}

除了类的对象成员为初始化时有默认值,其他变量创建时都需要初始化。
2.方法重载
参数类型,参数个数,参数顺序

public static void main(string[] args)
sum(1,2);//报错
public int sum(int a,int b)
{return a+b;}
public double sum(double a,double b){
return a+b;}
//补救方法如下两种
//第一种方法main()里加
demo2 d=new demo2();
int a =d. sum(1,2);
//第二种方法将两个sum()改为static类型方法
public static int sum(int a,int b)
{return a+b;}
public static double sum(double a,double b)
{return a+b;}

如果传入的类型数据(实际参数类型)小于方法中声明的形式参数类型,实际数据类型就会被提升。char型略有不同,如果无法找到恰好接受char参数的方法,就会把char直接提升到int型。
如果传入的实际参数类型较大,就得通过类型转换来执行窄化转换。如果不这么做,编译器就会报错。
3.this 关键字
calss Banana{
void peel(int i){…}
public class Bananapeel{
public static void main(string[] args)
{Banana a=new Banana(),b=new Banana ();
a. peel(1);//this 暗自把“所操作对象的引用”作为第一个参数传递给peel()。
b. peel(2);

}
}
}
this关键字只能在方法内部使用,表示对“调用方法的那个对象”的引用。this的用法和其他对象引用并无不同。
构造器里调用构造器:
通常写this的时候,都是指“这个对象”或者“当前对象”而且它本身表示对当前对象的引用。在构造器里,如果为this添加了参数列表,那么就有了不同的含义。

class Bird {
public Bird(string name)
{this.name=name;}//this不能省略
public void xxx(){}
public void yyy()
{this.xxx();此处的this可省略
}
}
public Bird()
{this ("abc")//调用第二个构造函数
system. out.println("第一个构造函数")}
public Bird(string name)
{//this.Bird();//报错
this();//此处this()是指第一个构造器,只能位于第一位。
this. name=name;
}

尽管可以用this 调用一个构造器,但却不能调用两个。此外,必须将构造器置于最始端,否则编译器会报错。
除构造器之外,编译器禁止在其他任何方法中调用构造器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值