0
点赞
收藏
分享

微信扫一扫

Java基础点:面向对象上

zhaoxj0217 2022-02-16 阅读 65
java

JAVA 类及类的成员:属性 方法 构造器;代码块 内部类
三大特征:封装性,继承性,多态性
关键字:this super static final abstract interface package import

  1. 面向对象的两个要素(类和对象)
    a) 类:对一类事物的描述 抽象的,概念上的定义–类的设计就是类的成员的设计
    (创建类的对象:类的实例化)
    b) 对象:实际存在的个体 也成为实例(instance)
    i. 调用方法:对象.属性 对象.方法
    ii. 多个对象的关系:非static => 每个对象独立拥有一个属性
    c)

  2. 类的结构
    a) 属性:对于类中的成员变量 —成员变量(field)
    b) 方法:对应类中的成员方法 —函数(method)

  3. 成员变量(instance variable)和局部变量(local variable)
    a) 相同点:
    i. 先声明,后使用
    ii. 有对应的作用域
    b) 不同点:
    i. 位置不同:

  4. 成员变量:直接定义在类的{}

  5. 局部变量:方法内,方法形参,代码块内,构造器内部。
    ii. 修饰符:局部变量无法使用修饰符
    iii. 默认初始化值:局部变量没有默认初始化值—>需要赋值
    iv. 内存加载位置不同:

  6. 局部变量记载在栈空间stack

  7. 非static属性:加载在堆空间(heap)

  8. 匿名对象
    a) 创建对象是,没有显示赋予名字。
    b) 匿名对象只会调用一次
    c) 例子:mall.show(new phone());
    i. 相当于把new的对象给到形参,方法调用完就出栈。

  9. 方法重载(overload)注意区分方法的重写(override/overwrite)
    a) 同一个类中,允许多个同名的方法存在,只要参数个数和参数不同即可
    b) 和权限、返回值类型都没关系!
    c) printline(new char[] {a,b,c})=> 结果输出abc,没有使用Object的方法

  10. 可变个数的形参
    a) 例子:public void showString (String … strs)
    i. 可以输入多个参数
    ii. 和数组冲突!!

  11. 方法参数的值传递机制
    a) 值传递:将实际参数的副本传入方法内,而参数本身不受影响
    i. 形参是基本数据类型—>将实参的基本数据类型的“数据值”传递给形参
    ii. 形参是引用数据类型—>将实参的引用数据类型变量“地址值”传递给形参

  12. 递归方法
    a) 一个方法调用其本身

  13. 封装性
    a) 隐藏对象内部的复杂性,提供对外部的接口。便于外界调用,从而提高系统的可扩展性、可维护性。
    i. 例如:属性私有化:对属性进行私有化private,提供公共public的set和get的方法。
    ii. 不对外暴露的方法私有化
    iii. 单例模式 私有化构造器等等。。

  14. Java四种权限
    a) 顺序:private(类内部)、缺省(同一个包)、protected(不同包的子类)、public(同一个工程)
    b) 修饰类:只能使用缺省或者public

  15. 构造器
    a) 格式:权限修饰符 类名(形参列表){}
    b) 默认:和类的权限相同=>类的权限只有缺和public

  16. 拓展:JavaBean
    a) 一种可重用组件,满足:
    i. 类是公共的
    ii. 有一个无参数的公共的构造器
    iii. 有属性,且有对应的get、set方法

  17. This 的使用
    a) 在方法内部使用->这个方法所属对象的引用
    b) 构造器内部使用->这个构造器正在初始化的对象,相当于调用本类中的其他构造器>>只能放在首行
    i. 使用this(参数列表),通过区分参数列表来使用不同的构造器
    c) 可以用this来区分局部变量的属性

  18. Package关键字的使用
    a) 提供包的概念,方便类的管理
    b) 申明在文件头
    c) 包->属于标识符、遵循命名规范
    d) “.”一次代表一层文件目录
    e) 同一个包下不能命名同名的接口和类

  19. Import关键字:导入
    a) 在源文件中显示的使用import结构导入指定包内的类和接口
    b) 声明在包和类之间
    c) 对于Lang包和本包的类和接口,直接使用即可
    d) 若不同的包使用同名的类,使用全类名:
    i. 引用的时候:写全包名com.aitu.exe…Account account = new com.aitu.exe…Account ();
    e) Import static:导入指定类或接口中的静态接口
    i. Import static Java.Lang.Math.*

  20. 可以直接使用 sqrt(),而不在前面输入“Math.”;
    ii.

举报

相关推荐

0 条评论