面向对象周小结

面向对象
     一、类与对象
     1.创建类
                     类体    变量       成员变量    
                                               静态变量
                                                
                                方法       构造方法
                                               成员方法
                                               静态方法
                      修饰符       访问修饰符        public private protected  缺省
                                        非访问修饰符     static  final                                        
                      作用域       
                      关键字      this super
                      运算符     instanceOf
                                                                                       
     2.实例化对象
             
     class Student{
          String name;
          int age;
         
          public Student(){
              
          }
         
         public Student(String name,int age){
            //方法体
            this.name = name;
            this.age = age;
         }
     }
     
     Student zhangShan = new Student("张三",23);
     
  二、面向对象三大特性
     1.封装
            
     2.继承
                 子类继承父类
        super
        Object  equals  String    
        String a = new String("hello");
        String b = new String("hello");
        
        a.equals(b)  true
        a == b       false
        int a = 10;
        int b = 10;
        a == b
           
      3.多态

                    父类变量引用父类实例,也可以引用子类实例

eg:


                 
 三、集合
            数组
     ArrayList<Student> lists = new ArrayList<Student>();
     lists.add(zhangshan);
     lists.get(0);
     lists.remove(0);
     lists.remove(zhangshan);

对象类型转换

              在继承链中,我们将子类向父类转换称为“向上转型”,将父类向子类转换称为“向下转型”。

eg:



作用域 变量访问区域

       变量的作用域分为四个级别:类级、对象实例级、方法级、块级。




包装类:

    每个包装类的对象可以封装一个相应的基本类型的数据,并提供了其它一些有用的方法。包装类对象一经创建,其内容(所封装的基本类型数据值)不可改变。

    基本类型和对应的包装类可以相互装换:
由基本类型向对应的包装类转换称为装箱,例如把 int 包装成 Integer 类的对象;
包装类向对应的基本类型转换称为拆箱,例如把 Integer 类的对象重新简化为 int。

eg:



方法覆盖和方法重载:

覆盖:

     在类继承中,子类可以修改从父类继承来的方法,也就是说子类能创建一个与父类方法有不同功能的方法,但具有相同的名称、返回值类型、参数列表。

    如果在新类中定义一个方法,其名称、返回值类型和参数列表正好与父类中的相同,那么,新方法被称做覆盖旧方法。

    参数列表又叫参数签名,包括参数的类型、参数的个数和参数的顺序,只要有一个不同就叫做参数列表不同。

被覆盖的方法在子类中只能通过super调用。

eg:


重载:
       注意:Java父类和子类中的方法都会参与重载,例如,父类中有一个方法是 func(){ … },子类中有一个方法是 func(int i){ … },就构成了方法的重载。

eg:


覆盖和重载的不同:
方法覆盖要求参数列表必须一致,而方法重载要求参数列表必须不一致。
方法覆盖要求返回类型必须一致,方法重载对此没有要求。
方法覆盖只能用于子类覆盖父类的方法,方法重载用于同一个类中的所有方法(包括从父类中继承而来的方法)。
方法覆盖对方法的访问权限和抛出的异常有特殊的要求,而方法重载在这方面没有任何限制。
父类的一个方法只能被子类覆盖一次,而一个方法可以在所有的类中可以被重载多次。


运算符:

构造方法

     instanceof 运算符用来判断一个变量所引用的对象的实际类型,注意是它引用的对象的类型,不是变量的类型。

内部类:  

       内部类和外层封装它的类之间存在逻辑上的所属关系,一般只用在定义它的类或语句块之内,实现一些没有通用意义的功能逻辑,在外部引用它时必须给出完整的名称。

使用内部类的主要原因有:
       内部类可以访问外部类中的数据,包括私有的数据。
       内部类可以对同一个包中的其他类隐藏起来。
       当想要定义一个回调函数且不想编写大量代码时,使用匿名(anonymous)内部类比较便捷。
       减少类的命名冲突。

静态方法 静态类

    静态方法是一种不能向对象实施操作的方法。例如,Math 类的 pow() 方法就是一个静态方法,语法为 Math.pow(x, a),用来计算 x 的 a 次幂,在使用时无需创建任何 Math 对象。

关于静态变量和静态方法的总结:
     一个类的静态方法只能访问静态变量;
     一个类的静态方法不能够直接调用非静态方法;
      如访问控制权限允许,静态变量和静态方法也可以通过对象来访问,但是不被推荐;
      静态方法中不存在当前对象,因而不能使用 this,当然也不能使用 super;
      静态方法不能被非静态方法覆盖;
      构造方法不允许声明为 static 的;
      局部变量不能使用static修饰。

eg:


程序数据存储区域  栈区域  堆区域。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值