静态方法的使用 静态方法与静态变量一样,属于类本身,而不属于那个类的一个对象。调用一个被定义为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运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
特点: 百度百科
浅拷贝:原始类型为值传递,对象类型仍为引用传递。
深拷贝(对象/数组):所有元素或属性均完全复制,与原对象完全脱离,也就是说所有对于新对象的修改都不会反映到原对象中。 显然,浅拷贝会带来一个很大的问题。就是,如果我复制的值是一个引用地址,那么我通过一个变量去修改这个对象,会导致所有该对象的引用都发生变化。
