类与对象二(基础)

来源:互联网 发布:新西兰移民 知乎 编辑:程序博客网 时间:2024/06/06 12:28

一:构造函数

*构造函数的基本语法:

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

[<语句>]

}

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

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

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

*一般将构造函数的修饰符声明为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
原创粉丝点击