zoukankan      html  css  js  c++  java
  • 面向对象编程

    面向对象的三条主线:
    1.类及类的成分
    2.面向对象的三大特性
    3.其他的关键字:this super import package abstract static final interface等

    1.java程序是关注于类的设计。类从代码的角度:并列关系! 从执行、设计的角度:关联关系、继承关系、聚合关系
    class A{

    }

    class B{
    A a = new A();
    }
    2.类的成分:属性 方法 构造器 代码块 内部类
    2.1 属性:①变量的分类:成员变量(属性 Field) vs 局部变量(方法的形参、方法内部、代码块内部)
    基本数据类型(8种,不同的数据类型对应不同的默认初始化值) vs 引用数据类型(数组、类、接口 默认初始化值为null)
    ②属性的声明格式:修饰符 数据类型 变量名 = 初始化值;//java是强数据类型的语言
    ③对属性的赋值的操作:1.默认初始化 2.显式的初始化 3.代码块的初始化 4.构造器的初始化;5.调用方法、属性进行赋值
    2.2 方法 ①格式:修饰符 (其它的关键字:static/final/abstract)返回值类型 方法名(形参列表){ //方法体 }
    ②方法的重载(overload) vs 方法的重写(override overwrite)
    ③ 方法的参数传递机制:值传递(难点)
    2.3构造器 ①构造器的作用:1.创建类的对象 2.初始化对象的成员变量
    ②构造器也是可以重载的。
    2.4 代码块 主要作用:用来初始化类的成员变量
    分类:静态的代码块 vs 非静态的代码块
    2.5 内部类 ①分类:成员内部类(static的成员 vs 非static的成员) vs 局部内部类(方法内部声明的类)
    ②掌握 :①如何创建成员内部类的对象(如:创建Bird类和Dog类的对象)
    ②如何区分调用外部类、内部类的变量(尤其是变量重名时)
    ③局部内部类的使用 (见TestInnerClass1.java)
    3. 类的初始化(创建类的对象)
    3.1 如何创建类的对象。如: Person p = new Person(); Date d = new Date();
    3.2 内存解析:
    ①栈:局部变量、对象的引用名、数组的引用名
    堆:new 出来的“东西”
    方法区:(字符串常量池)
    静态域:存放类中静态的变量
    ②如何理解创建的对象在内存中加载的过程(理解)
    3.3 子类对象实例化的全过程: SubClass sc = new SubClass();
    4.面向对象的三大特性:
    4.1 封装性:
    ① 通过私有化类的成员变量,通过公共的getter和setter方法来调用和修改
    ② 还可以对类的其他结构进行“封装”
    ③ 权限修饰符:public protected 缺省 private
    4.2 继承性:
    通过让一个类A继承另一个类B,就可以获取类B中的结构(主要的:属性、方法、构造器)。子类:类A 父类:类B
    >java中的类的继承性:单继承的。
    4.3 多态性:
    ①体现:方法的重载与重写 ; 子类对象的多态性 Person p = new Student();
    ②子类对象多态性的使用:虚拟方法调用。
    ③向上转型 向下转型 Student s = (Student)p; //建议在向下转型之前: if ( p instanceof Student)避免出现ClassCastException的异常

    5.其它关键字:
    5.1 this:修饰属性、方法、构造器 。表示:当前对象或当前正在创建的对象
    5.2 super:修饰属性、方法、构造器。显式的调用父类的相应的结构,尤其是子父类有重名的方法、属性
    5.3 static : 修饰属性、方法、代码块、内部类。随着类的加载而加载!
    5.4 final:修饰类、属性、方法。表示“最终的”
    5.5 abstract : 修饰类、方法
    5.6 interface:表示是一个接口,(接口是与类并列的一个结构)。类与接口之间同时“implements”发生关系。
    5.7 package import 。。。
    >abstract不能修饰属性、构造器、不能与final static private共用。

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法训练 黑色星期五
    Java实现 蓝桥杯VIP 算法训练 比赛安排
    Java实现 蓝桥杯VIP 算法训练 比赛安排
    Java实现 蓝桥杯VIP 算法训练 斜率计算
    Java实现 蓝桥杯VIP 算法训练 斜率计算
    Java实现 蓝桥杯VIP 算法训练 整数平均值
    Java实现 蓝桥杯VIP 算法训练 整数平均值
    控件动态产生器(使用RegisterClasses提前进行注册)
    Delphi编写自定义控件以及接口的使用(做了一个TpgDbEdit)
    Log4delphi使用心得
  • 原文地址:https://www.cnblogs.com/longc/p/5921556.html
Copyright © 2011-2022 走看看