一 静态方法和非静态方法有什么区别
用static修饰的方法称为静态方法或称为类方法,它是属于成个类的方法,它不需要实例化变可以被访问;没有用static修饰符修饰的方法,是属于某个实例化对象的方法.
由于静态方法是属于整个类的方法.所以它不能操作和处理属于某个对象的成员变量,而只能处理属于整个类的成员变量.也就是static方法处理的static成员变量.
二 final成员变量和方法的特点.
在程序中经常需要使用各种类型的常量.为此可以为它们取一个类似变量的标识符,在程序中就使用这个标识符来引用次常量而不是直接使用此常量,如果类的成员变量标识符前使用final修饰符修饰,则这个成员变量被称为最终成员变量,被赋值后在整个程序执行过程中不会改变的.使用final修饰符修饰的方法被称为最终方法,这个方法不能被子类覆盖.
三 类的封装,如何通过对成员变量和方法的访问控制权进行设置达到对数据的封装的目的?
所谓的封装:(1)在类中设置成员变量和方法的访问控制权限.(2)提供统一的供其他调用的接口.(3)其他对象不能直接修改本对象所拥有的属性. 封装的对象是面向对象程序设计的特性.java为类中的成员变量和方法提供了4种访问控制机制:public ,protected,private,friendly.其中被public修饰的方法称为公共方法,类中被设定为public的方法是这个类对外的接口部分,程序的其他部分通过调用它们实现与当前类交换信息.传递信息甚至影响当前类.程序通过这些方法修改类中的某个属性.从而避免了程序直接去操作类中的数据,这就是数据封装的思想的具体体现.
四 多态中的重载与覆盖不同点.
方法重载指在类中创建了多少个方法,它们具有相同的名称,但拥有参数的个数不同或虽然参数个数相同而参数的数据类型不同,或者两者都不相同.
覆盖是指子类中定义的方法与父类中定义的方法名称相同,子类在调用这个同名方法时,默认是调用它的自己定义的方法,而将冲父类那里继承而来的方法"覆盖"住,好象此方法不存在一样,如果一定要调用父类的同名方法,可以使用"super"关键字类指定.
重载和覆盖的不同之处是:重载是在一个类中有多个方法,方法名相同而参数不同;覆盖是指父类和子类中方法同名且拥有相同的参数列表和相同的返回类型,子类在调用时默认调用子类的同名方法而覆盖掉父类的方法.
----------------解决方案--------------------------------------------------------
对final 大家 都有什么样的 理解 在应用过程中 发现过 什么样的问题 希望大家讨论下 OK ?
----------------解决方案--------------------------------------------------------
public ,protected,private,friendly
前3个我都知道但friendly却不太清楚,这是默认的包级别吗?希望搂主能指点一二
----------------解决方案--------------------------------------------------------
java访问权限控制词
java中,对类、函数、成员数据都会有访问控制符,他们依次为public 、private、protected 和 friendly(无访问控制符)4种,我记得我当时培训的时候,我的老师告诉我"public 是公用的,private是私房钱 protected是大熊猫"
friendly(友好的)
当在类、函数、成员数据前不写任何访问控制符的时候,就是friendly,他的意义就是在同一个包中,所有的class都可以访问,或者当你没有定义任何的包的时候,只要在同一个目录内的文件也是可以互相访问的,编译器会视他们为一个包,但是对于包外的class形同private,也可以称做package访问权限
public (公用的)
关键字public代表任何人都可以访问他
private(私房钱)
先想想私房钱的概念,私房钱只所以这么叫,是因为这个钱只有本人自己才能使用。所以private代表的意思就是说除了class本身,没有谁再能访问他了。private充分体现了封装性
protected(大熊猫)
大熊猫是受到保护的,并且他的子女因为继承大熊猫的关系也是受到保护的,所以protected的意义在于允许派生类访问基类的成员,而基类的包中的其他类也是可以访问的(friendly)
----------------解决方案--------------------------------------------------------
我也是个菜鸟 呵呵
----------------解决方案--------------------------------------------------------
不错 说的还行 初学的多看看
----------------解决方案--------------------------------------------------------
呵呵 这也算是 自己发个 象样点的 帖子哦!
----------------解决方案--------------------------------------------------------
不错嘛,.你到底是学什么的?
----------------解决方案--------------------------------------------------------
刚刚学JAVA 有点迷糊呢还 呵呵
----------------解决方案--------------------------------------------------------
不错啊,刚学就有这个水平
人才
----------------解决方案--------------------------------------------------------