一 静态方法和非静态方法有什么区别
用static修饰的方法称为静态方法或称为类方法,它是属于成个类的方法,它不需要实例化变可以被访问;没有用static修饰符修饰的方法,是属于某个实例化对象的方法.
由于静态方法是属于整个类的方法.所以它不能操作和处理属于某个对象的成员变量,而只能处理属于整个类的成员变量.也就是static方法处理的static成员变量.
二 final成员变量和方法的特点.
在程序中经常需要使用各种类型的常量.为此可以为它们取一个类似变量的标识符,在程序中就使用这个标识符来引用次常量而不是直接使用此常量,如果类的成员变量标识符前使用final修饰符修饰,则这个成员变量被称为最终成员变量,被赋值后在整个程序执行过程中不会改变的.使用final修饰符修饰的方法被称为最终方法,这个方法不能被子类覆盖.
三 类的封装,如何通过对成员变量和方法的访问控制权进行设置达到对数据的封装的目的?
所谓的封装:(1)在类中设置成员变量和方法的访问控制权限.(2)提供统一的供其他调用的接口.(3)其他对象不能直接修改本对象所拥有的属性. 封装的对象是面向对象程序设计的特性.java为类中的成员变量和方法提供了4种访问控制机制:public ,protected,private,friendly.其中被public修饰的方法称为公共方法,类中被设定为public的方法是这个类对外的接口部分,程序的其他部分通过调用它们实现与当前类交换信息.传递信息甚至影响当前类.程序通过这些方法修改类中的某个属性.从而避免了程序直接去操作类中的数据,这就是数据封装的思想的具体体现.
四 多态中的重载与覆盖不同点.
方法重载指在类中创建了多少个方法,它们具有相同的名称,但拥有参数的个数不同或虽然参数个数相同而参数的数据类型不同,或者两者都不相同.
覆盖是指子类中定义的方法与父类中定义的方法名称相同,子类在调用这个同名方法时,默认是调用它的自己定义的方法,而将冲父类那里继承而来的方法"覆盖"住,好象此方法不存在一样,如果一定要调用父类的同名方法,可以使用"super"关键字类指定.
重载和覆盖的不同之处是:重载是在一个类中有多个方法,方法名相同而参数不同;覆盖是指父类和子类中方法同名且拥有相同的参数列表和相同的返回类型,子类在调用时默认调用子类的同名方法而覆盖掉父类的方法.