平凡之上
博观而约取,厚积而薄发! 守得云开见月明。

#P174-P181  2022-01-23  #P182-P188  2022-01-24  #P189-P195  2022-01-26  #P196-P202     2022-01-27  

#P203-P212  2022-02-15  #P213-P218  2022-02-17  #P219-P221  2022-02-18  #P222-P230  2022-02-23

#P260-P267  2022-03-03  #P280-P282  2022-03-07  #P283-P293  2022-03-15  #P294-P300  2022-03-20

#P330-P337  2022-03-26  #P338-P353  2022-03-30  #P354-P365  2022-03-31

一、java基本元素(类和对象)

类:对一类事物的描述,是抽象的,概念上的定义。

对象:是实际存在的该类事物的每个个体,因而也称为实例(instance)。

 java类的成员:属性、方法、构造器;代码块、内部类。

(非static的类存放在堆空间中)

  • 类的成员一:属性(成员变量)

 

  • 类的成员二:方法

方法也即是函数。定义方法。

1、方法的重载: 

 

 2、可变个数的形参

说明:

  1. 声明格式:方法名(参数的类型名 ...参数名)

  2. 可变参数:方法参数部分指定类型的参数个数是可变多个:0个,1个或多个

  3. 可变个数形参的方法与同名的方法之间,彼此构成重载

  4. 可变参数方法的使用与方法参数部分使用数组是一致的,所以二者不能共存

  5. 方法的参数部分有可变形参需要放在形参声明的最后

  6. 在一个方法的形参位置,最多只能声明一个可变个数形参 

 方法参数的值传递机制:

1、内存结构:栈(存放局部变量)、堆(存放new出来的结构:对象(非static的)、数组)

2、变量:成员变量、局部变量(方法内、方法形参、构造器内、构造器形参、代码块内)

  •  类的成员三:构造器

根据参数不同,构造器可以分为如下两类:

    隐式无参构造器(系统默认提供)

    显式定义一个或多个构造器(无参、有参)

注 意:

  • Java语言中,每个类都至少有一个构造器 
  • 默认构造器的修饰符与所属类的修饰符一致 
  • 一旦显式定义了构造器,则系统不再提供默认构造器 
  • 一个类可以创建多个重载的构造器 
  • 父类的构造器不可被子类继承

 

  • 类的成员四:代码块

代码块(或初始化块)的作用:对Java类或对象进行初始化 

代码块(或初始化块)的分类: 一个类中代码块若有修饰符,则只能被static修饰,称为静态代码块 (static block),没有使用static修饰的,为非静态代码块。

  • 类的成员五:内部类

 

 

二、OOP的三大特性

特性一、封装

 

 特性二、继承

  •  子类继承了父类,就继承了父类的方法和属性。
  •  在子类中,可以使用父类中定义的方法和属性,也可以创建新的数据和 方法。
  •  在Java 中,继承的关键字用的是“extends”,即子类不是父类的子集, 而是对父类的“扩展”。

  Java只支持单继承和多层继承,不允许多重继承 

    一个子类只能有一个父类 

    一个父类可以派生出多个子类

关于继承的规则: 子类不能直接访问父类中私有的(private)的成员变量和方法。可以通过set/get进行操作。

 特征三、多态

1.何为多态性:
对象的多态性:父类的引用指向子类的对象(或子类的对象赋给父类的引用)
2.多态的使用:虚拟方法调用
编译时,看左边;运行时,看右边。
3.多态的使用前提:
①有继承关系 ②有方法的重写
4.对象的多态性只适用于方法,不适用于属性(编译、运行都看左边)

 

 子类可看做是特殊的父类,所以父类类型的引用可以指向子类的对象:向上转型(upcasting)。

/*
* instanceof关键字使用
* a instanceof A:检验a是否为类A的对象,返回值为boolean型。
*如果instanceof B,B是A的父类,也是true
* */

 

posted on 2022-01-23 22:11  平凡之上  阅读(32)  评论(0编辑  收藏  举报