zoukankan      html  css  js  c++  java
  • 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”发生关系。

           一个类多继承的时候,接口中有方法名相同,并且返回值类型也一样的时候,系统会当成一个方法,若返回值不一样,编译报错没法通过

           接口中定义的属性默认为 public static final的

           几口中定义的方法默认为public的,接口中的方法是没有实现的。
    5.7 package import 。。。
    >abstract不能修饰属性、构造器、不能与final static private共用。

  • 相关阅读:
    微信小程序用setData修改数组或对象中的一个属性值,超好用,最简单的实现方法,不容错过!大神们 都 在 看 的方法!!!
    pythonchallenge1
    pythonchallenge4
    pythonchallenge7
    pythonchallenge9
    pythonchallenge8
    pythonchallenge2
    pythonchallenge0
    递归排序
    pythonchallenge3
  • 原文地址:https://www.cnblogs.com/gaofangquan/p/7236730.html
Copyright © 2011-2022 走看看