类与对象二(基础)

一:构造函数

*构造函数的基本语法:

<修饰符><类名>([<参数表>]){

[<语句>]

}

二:构造函数的特点
*构造函数的作用:完成类对象的初始化工作。

*构造函数的名称必须与类名相同。

*构造器没有返回类型并且不可被继承。

*一般将构造函数的修饰符声明为public

*构造函数中不能有return语句

三:构造函数参数

*参数表与方法声明中的一样。可以像方法一样向构造函数传递参数。

*构造函数可以是0个,1个或者多个参数

四:无参数的构造函数

*没有构造函数-------使用默认的构造函数(没有参数,没有方法体)

*如果使用没有参数的构造函数,则创建的对象具有相同的初始值。

*带有参数的构造函数:

class Person{
	private String name="model";
	private int age=17;
	private double height=1.8;
	private double weight=60;

	public Person(String name,int age,double height,double weight){
		this.name=name;
		this.age=age;
		this.height=height;
		this.weight=weight;
}
}

五:构造函数的重载

*一个类可以有多个构造函数,叫做构造函数的重载

*条件(满足其一)

···参数的个数不同

···参数的类型不同

···参数的位置不同(但这时要注意,如果参数的类型相同就要报错,必须是不同的类型)

六:构造函数的使用

*不能由程序员显式调用。

*在创建一个类的新的对象的同时,系统会自动调用该类的构造函数为新的对象初始化。

*构造函数只能和New关键字一起使用。

七:格式

类名    对象名=new 构造函数名称(成员变量的初始值)

八:默认构造函数

*每个类至少有一个构造函数。

*如果不添加构造函数则自动添加默认的构造函数。

····默认构造函数不带参数

····默认构造函数函数体为空

*不必编写构造函数就能使用New Xxx()创造对象实例

注意:当编写了构造函数以后,默认的构造函数就会消失。

九:对象

1,对象的生成(对象的声明)

*格式:<类名><对象名>

如:SameCirele c1,c2;

c1和c2是两个空对象。

2,创建对象

*格式:<对象名>=new <类名><实参>;

如:c1=new SameCirele (3,4,5);

       c2=new SameCirele(6,7,8);

对象c1的首位置在3,对象c2的首位置在6;

3,对象的引用

SameCirele c1=new SameCirele(3,4,5);

SameCirele c2=c1;

4,对象的清除

*对象为null时,有java的自动回收机制清除对象,释放对象暂用的类存。

*可有手动写finalize()方法撤销对象-----但不提倡使用

十:关于内存

*简单的理解为栈内存和堆内存

*栈内存是用来放置地址的,就像我们的户口本

*堆内存是用来存放地址的实际对象的,就像是我家的房子一样

示例:声明对象  Person p;

这个时候p是在栈内存里面,没有未初始化的地址

       创建对象p=new Person();

这时p在堆内存里就占有位置了,只是现在没赋值,都是默认的值

十一:补充内容

*栈内存:在方法中定义的变量(基本类型和引用类型)。超过变量的作用域时,自动释放变量的内存。

*堆内存:new创建的新对象(包括数组),有java的自动回收机制来清除。

十二:两者的区别

*栈(stack)------连续的内存区域,大小固定,编译时确定所需空间大小,效率高。

*堆(heap)------不连续的内存区域,运行是确定所需空间大小(支持面向对象的多态性,如:运行时才能确定是哪个的对象),效率低,但灵活。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值