J2SE-面向对象

View Code
public static void main(String[] args) throws Exception {
        //CreateUserRoleField.getInstance();
        list = new ArrayList<UserRoleVO>();
        UserRoleVO u = new UserRoleVO();
        u.setIdcard("1");
        u.setUsername("name1");
        u.setRolename("rolename1");
        list.add(u);
        u.setIdcard("2");
        u.setUsername("name2");
        u.setRolename("rolename2");
        list.add(u);
        u.setIdcard("3");
        u.setUsername("name3");
        u.setRolename("rolename3");
        list.add(u);
        
        for(UserRoleVO urv : list){
                        //打印出来始终都是3,因为u的引用最终指向了第三次的初始化
            System.out.println(urv.getIdcard());
        }
    }

 

数据类型:
       容量从小到大基本类型 : byte short char int long  float double (boolean不能相互转换)
容量小的自动转换为大的
容量大的转换为小的时需加上强制转换符,可能造成精度降低或溢出
有多种类型的数据混合运算时,系统首先自动将所有的数据转换成容量最大的数据类型,然后再进行计算



数据转型:
        instance of 是否是某种类型
Animal a = new Dog();(首先狗继承了动物)(容量小的自动转换为大的)a看不到狗的新属性,只看到作为animal拥有的属性和方法
Dog d = (Dog)a;(容量大的转换为小的时需加上强制转换符)d能看到狗的新属性
子类的对象可以当做基类的对象来使用称作向上转型(upcasting),反之称为向下转型



static关键字:
        static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员变量

只有一份。
static声明的方法为静态方法,在调用该方法时,不会针对于某个对象的调用,所以不能访问非静态成员。
可以通过对象引用或类名访问静态成员



访问控制:
        修饰符       类内部    同一个包   子类   任何地方
        private      可以      
        default      可以      可以
        protected  可以       可以      可以
        public        可以      可以      可以       可以



抽象类:
      用abstract关键字来修饰一个类时,这个类叫做抽象类(相对于接口来说部分方法已经很精练了不需要再重写,而有部分需要去重写,就是抽象类,全部需要去重写就是接口)
抽象方法为:用abstract来修饰一个方法时,该方法叫做抽象方法
特征:含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写,或把子类也声明为抽象方法就不需重写抽象方法
      抽象类不能被实例化
      抽象方法只需声明,不需实现


接口:
    是抽象方法和常量值的定义的集合。
本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。(接口是提供类的功能的规范,仅仅只说明类的功能,具体工作即实现的方法,静态方法不需要写在接口中。如果有特定业务需要,那还不如用抽象类,那就违背接口的用法了)
接口中声明属性默认为public static final,也只能是public static final,
public ;使接口的扩展性扩大,任何地方都能访问
static : 因反复被实现,定成静态的,其一就减少内存的消耗,其二当实现多个接口时,有的接口有相同名字的属性
         定义成静态的,就能通过类名找到相应的“相同”属性而不出现冲突
final  : 如果你要想实现什么,你就必要按照我接口中所定义的标准来,否则就不行!如果属性不设置成final了 ,
         那实现了接口的类都可以定义一个方法然后对这个属性进行修改了,那么原来接口定义的标准意义也就不存在了

接口中声明方法默认就是public abstract的
public :接口就是一个规则,就是让别人看见实现的,所以它的访问权限是最低的,权限太苛刻就没意义了,别人看不到或少数人才能看到
abstract : 接口就是一个规则,就是让别人实现的

接口之间可以相互去继承,但不可以实现(都是接口,方法中不能出现方法体,怎么去实现)
 


多态存在:
        要有继承
        要有重写
        父类引用指向子类



final :
      属性只读不写
      方法不能被重写
      类不能被继承

 








posted on 2012-03-22 17:54  lovebeauty  阅读(312)  评论(0编辑  收藏  举报

导航