华清远见-面向对象学习总结

学习心得

思想

面向对象(Object Oriented Programming)是一种编程思想,是将一个问题的所有参与对象创建出来,赋予对象相应的行为属性

类和对象

(class)是具有相同属性和行为的对象的集合

属性:描述对象的特征,通过变量形式表现
行为:描述对象的动作,通过方法形式表现

对象(Object)是类的一个具体实例,是类的具体表现

成员变量和局部变量

成员变量定义在类中,拥有默认值
局部变量定义在方法中,没有默认值,必须赋值后才能使用

三大特性(封装、继承、多态)

封装性: 通过private来实现封装性,对外提供get和set方法进行相关操作

继承性: 通过extends实现,一个子类只能有一个父类,而一个父类可以有多个子类。

多态性: 父类的引用指向子类的对象

其中向上转型向下转型需要注意
thissuper关键字也需要注意,前者表示当前对象,后者表示父类的;在构造方法中使用this()和super()都必须放在构造方法的第一行

重写(override)和重载(overload)

重写(override)

子类继承父类后,对父类中的某个非私有方法进行重写,达到拓展或重做的目的。

  • 重写必须要求方法名、方法返回值、方法参数列表必须相同
  • 访问权限不能比父类更严格
  • 不能抛出比父类更大的异常

重载(overload)

在一个类中,某个方法在不同的参数下,表现不同的效果。同名不同参。

  • 方法名必须相同
  • 方法参数列表必须不同(类型和数量)
  • 与返回值无关

抽象abstract

abstract是一个修饰符,用于修饰方法或类

当修饰一个方法时,其所在的类也必须为抽象类,即必须有abstract修饰

抽象方法的特点

  • 抽象方法没有方法体
  • 抽象方法只能定义在抽象类或接口中
  • 抽象方法通常需要子类重写
  • abstract不能修饰构造方法和静态方法

抽象类的特点:

  • 抽象类不能实例化
  • 抽象类中可以有抽象方法,也可以有普通方法
  • 抽象类的构造方法在创建其子类对象时会自动执行

接口interface

访问修饰符 interface 接口名{

}

由于java是单继承,如果类A想要继承多个"父类"中的内容时,就不能使用extends,但可以使用implements实现多个接口而达到多继承的目的

接口是一个完全抽象类,其中的方法都是被public abstract修饰的公开抽象方法,其中的属性,都是被public static final修饰的公开的静态常量,需要在定义时赋值才能使用。

接口的特点

  • 和抽象类一样,接口也不能实例化
  • 接口中没有构造方法和普通方法

static关键字

static可以修饰属性、方法、代码块({}),被static修饰的内容,称为静态成员。

静态成员在类加载时就保存到内存中,所以可以脱离对象存在。在访问时,直接通过类名访问即可。
Java中的Math类中大量使用了static修饰属性和方法,所以直接使用Math进行调用。

特点:

  • 被static修饰的属性、方法或代码块称为静态成员,随着类加载而加载到内存中,只加载一次
  • 静态成员无需对象参与,通过类名即可访问,也可以使用对象访问
  • 静态方法中不能使用非静态成员,可以在静态方法中定义局部变量
  • 静态代码块随着类加载而执行一次,优先于构造方法执行

遇到的小问题

像在做这一阶段的相关练习题时,遇到的一点问题如下:

public class Person{ 
  			int arr[] = new int[10];

  			public static void main(String a[]) { 
   				System.out.println(arr[1]); 
  			} 
		}

结果我就习惯性的认为定义了一个int型数组,没有给初始值,然后输出0。这样想就大错特错了。我们可以看到main方法前面有一个关键字static,这说明main方法是静态方法,静态方法只能用静态的成员变量,所以结果应该是编译产生错误

总结

在我看来面向对象的学习核心是要理解其思想,了解它的三大特性(封装、继承、多态),然后再去细节的去了解常用的关键字this、super、abstract、interface等。一周的学习挺快的,面对像的相关概念还是需要多记一下。感觉这个阶段都是一些要记得知识。这一阶段的练习题无非就是学生信息增删改查、商品信息增删改查等,操作逻辑基本上都差不多,只要掌握一些操作我感觉就ok了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值