Java学习笔记之面向对象编程(中级部分)

1 包

1.1 包的三大作用

1)区分相同名字的类

2)当类很多时,可以很好的管理类

3)控制访问范围

1.2 包的命名

命名规则:只能包含数字、字母、下划线、小圆点,但不能用数字开头,不能是关键字或保留字。

命名规范:

1)一般是小写字母+小圆点

2)一般是:com.公司名.项目名.业务模块名 如:com.hspedu.oa.controller

1.3 常用的包

1)java.lang.* //lang包是基本包,默认引用,不需要再引入

2)java.util.* //util包是系统提供的工具包

3)java.net.* //网络包,网络开发

4)java.awt.* //是做Java的界面开发,GUI

1.4 注意事项和使用细节

1、package的作用是声明当前类所在的包,需要放在类的最上面,一个类中最多只有一句package。

2、import指令位置放在package的下面,在类定义的前面,可以有多句且没有顺序的要求。

2 访问修饰符

2.1 基本介绍

Java提供四种访问修饰符,用于控制方法和属性(成员变量)和访问权限(范围)

1)公开级别:public,对外公开

2)受保护级别:protected,对子类和同一个包中的类公开。

3)默认级别:没有修饰符,向同一个包的类公开

4)私有级别:private,只有类本身可以访问,不对外公开

image-20220323120059763

2.2 使用的注意事项

1)修饰符可以用来修饰类中的属性,成员方法以及类

2)只有默认和public才能修饰类,并遵循上述访问无权限规则

3)成员方法的访问规则和属性完全一样。

3 封装

3.1 基本介绍

封装就是把抽象出的数据(属性)和对数据的操作(方法)封装在一起,数据被保护在内部,程序的其他部分只能通过被授权的方法才能对数据进行操作。

3.2 实现步骤

1)将属性私有化 private

2)提供一个公共的(public) set方法,用于对属性判断并赋值

public void setXxx(类型 参数名){
   
	属性 = 参数名;
}
例:
public void setName(String name){
   
    this.name = name;
}

3)提供一个公共的(public) get方法,用于获取属性值

public 返回值类型 getXxx(){
   
	return xx;
}
例:
public String getName(){
   
    return name;
}

4 继承

4.1 基本介绍

image-20220323122528136

4.2 基本语法

class 子类 extends 父类{
   
}

1)子类会自动拥有父类定义的属性和方法

2)父类又叫超类、基类

3)子类又叫派生类

4.3 继承的好处

1)代码的复用性提高

2)代码的扩展性和维护性提高

4.4 继承的深入讨论/细节

1)子类继承了父类所有的属性和方法,非私有的属性和方法可以在子类直接访问,但私有属性和方法不能在子类直接访问,要通过父类提供的公共方法去访问

2)子类必须调用父类的构造器

3)当创建子类对象时,不管使用子类的那个构造器,默认都会去调用父类的无参构造器,如果父类没有提供无参构造器,则必须在子类的构造器中用super去指定使用父类的那个构造器完成对父类的初始化,否则,编译不会通过。

4)如果希望调用父类的某个构造器,则显示的调用

5)super在使用时,必须放在构造器第一行(super只能在构造器中使用)

6)super() 和 this()都只能放在构造器第一行,因此这两个方法不能共存在一个构造器

7)Java所有类都是Object类的子类,Object是所有类的基类

8)父类的构造器的调用不限于直接父类,将一直向上追溯之Object类

9)子类最多只能继承一个父类,即java是单继承机制

10)不能滥用继承,自类和父类必须满足 is-a 关系

5 super关键字

5.1 基本介绍

super代表父类的引用,用于访问父类的属性、方法、构造器

5.2 基本语法

1)访问父类属性,但不能访问peivate属性

super.属性名;

2)访问父类的方法,不能访问父类的private方法

super.方法名(参数列表);

3)访问父类构造器

super(参数列表);只能放在构造器第一句,只能出现一句,不能与this()同时出行

5.3 super给变成带来的便利

1)调用父类构造器的好处(分工明确,父类属性由父类初始化,子类属性由子类初始化)

2)当子类中有和父类中的成员(属性或方法)重名时,为了访问父类成员,必须使用super

3)super的访问不限于直接父类,如果爷爷类和本类中有同名成员也可以使用super去访问爷爷类成员;如果多个基类中都有同名成员,使用super访问就遵循就近原则,也遵循访问控制权限规则。

5.4 super 和 this的比较

image-20220323130357375

6 重写/覆盖

6.1

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值