200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 静态方法与非静态方法 构造方法 数组拷贝

静态方法与非静态方法 构造方法 数组拷贝

时间:2018-07-07 13:11:25

相关推荐

静态方法与非静态方法 构造方法 数组拷贝

静态方法的使用

静态方法与静态变量一样,属于类本身,而不属于那个类的一个对象。调用一个被定义为static的方法,可以通过在它前面加上这个类的名称,也可以像调用非静态方法一样通过类对象调用。

实例方法必须通过类的实例来使用。实例方法可以使用类的非静态成员,也可以使用类的静态成员。

类的静态方法,静态变量是在类装载的时候装载的。但是要特别注意,类的静态变量是该类的对象所共有的,即是所有对象共享变量。所以建议尽量少用静态变量。尽量在静态方法中使用内部变量

方法调用

静态方法与实例方法唯一不同的,就是静态方法在返回类型前加static关键字。静态方法的调用有两种途径:

(1)通过类的实例对象去调用

调用格式为: 对象名.方法名

(2) 通过类名直接调用

调用格式为: 类名::方法名

静态方法和非静态方法的区别总结如下:

1、静态方法属于类所有,类实例化前即可使用;

2、非静态方法可以访问类中的任何成员,静态方法只能访问类中的静态成员;

3、因为静态方法在类实例化前就可以使用,而类中的非静态变量必须在实例化之后才能分配内存;

4、static内部只能出现static变量和其他static方法!而且static方法中还不能使用this等关键字,因为它是属于整个类;

5、静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁;

6、静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。

主要区别:静态方法在创建对象前就可以使用了,非静态方法必须通过new出来的对象调用。

静态方法与实例方法在性能和占用内存上没有明显的区别,是否声明为静态方法需要从类型的非静态字段、事件、面向对象扩展和多态这三方面来考虑。

构造器:

定义:

一种只用来初始化对象信息的特殊方法,

作用:

初始化对象信息( 不是用来创建对象 )

格式:

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

}

只能跟随new一起使用,没有办法调用

构造器不能和static(因为static跟随类), fianl ,abstract 一起使用

如果没有自定义构造器,编译器会自动为你添加一个空构造(默认)

如果存在自定义构造器,编译器都不会再为你提供任何构造器

构造器也是方法。

构造器没有返回值

构造器与类统名

每个类可以有一个以上的构造器

构造器可以有0个、1个或多个参数

构造方法是一种特殊的成员方法,它的定义方式与普通方法类似,其语法如下所示:

class 类名称 {

访问权限 类名称(类型1 参数1,类型2 参数2,…) { // 构造方法没有返回值

程序语句 ;

}

}

在使用构造方法的时候请注意以下几点:

1它具有与类名相同的名称 。

2它没有返回值,也没有返回类型。

3每一个类可以有多个构造方法。

4构造方法在创建对象时自动执行,一般不能显式地直接调用。

构造函数

是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。

特点:

百度百科

浅拷贝:原始类型为值传递,对象类型仍为引用传递。

深拷贝(对象/数组):所有元素或属性均完全复制,与原对象完全脱离,也就是说所有对于新对象的修改都不会反映到原对象中。 显然,浅拷贝会带来一个很大的问题。就是,如果我复制的值是一个引用地址,那么我通过一个变量去修改这个对象,会导致所有该对象的引用都发生变化。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。