Java面向对象进阶——封装、继承、构造

本文详细探讨了Java面向对象的三大特性:封装、继承和构造。讲解了this关键字的使用,包的定义、作用和使用,访问修饰符的种类及其用途,封装的原理和实现,继承的概念、原因、实现方式以及super关键字的应用,构造方法的详解,包括实例化过程。同时,简单介绍了Java的包装类和自动装箱、拆箱机制。
摘要由CSDN通过智能技术生成

目录

一、this关键字

1.使用方式:

二、包

1.包的定义

2.包的作用

3.包的使用

三、访问修饰符

1.public

2.protected

3.private

4.类的访问修饰符(package-private/package-access)

5.类成员的访问修饰符

四、封装

1.什么是封装

2.为什么要封装

3.如何封装

五、继承

1.什么是继承

2.为什么要继承

3.怎么继承

4.继承了什么

5.使用super关键字调用父类成员

6.调用父类属性和方法

7.方法重写 (@Override)

8.方法隐藏

父类和子类拥有相同名字的属性或者方法(方法隐藏只有一种形式,就是父类和子类

9.方法重写与方法重载的区别

六、构造方法

1.构造方法的概念

2.instanceof 的使用

3.object是所有类的父类[了解]

4.final 的使用

5.实例化的过程[执行的顺序]

七、包装类【了解】

1.有哪些包装类

2.自动装箱、自动拆箱

3.默认值


一、this关键字

this关键字代表当前对象(谁在调用,this就是谁),通常用于区分成员变量和方法中的局部变量。

1.使用方式:

(1)引用当前对象的成员变量

在类的成员方法中,如果存在于成员变量同名的局部变量,则可以使用this关键字来引用当前对象的成员变量

 public class person{
     private String name;
     private int age;
     
     //成员变量私有,使用setget
     public void setName(String name){
         this.name = name;
     }
     public void setAge(int age){
         this.age = age;
     }
 }

(2)调用当前对象的成员方法

在类的成员方法中,可以使用this关键字来调用当前对象的其他成员方法。例如:

 public class Person{
     public void sayHello(){
         System.out.pringtln("Hello");
     }
     public void sayHi(){
         this.sayHello();
     }
 }

(3)调用当前对象的构造方法

在类的构造方法中,可以使用this关键字来调用当前类的其他构造方法,例如:

public class Person{
     private String name;
     private int age;
    //无参构造
     public Person(){Person()构造方法中,this("Tom",20)是调用了另外一个Person构造
         this("Tom",20);
     }
    
    //有参构造
     public Persion(String name,int age){
         this.name = name;
         this.age = age;
     }
 }
​

注意:

  • this调用实例变量,调用实例方法,静态成员(不推荐),只能在实例成员中/实例初始化、构造方法中实现。

  • 使用this调用其他的构造方法 this ([实参列表]) 调用重载的构造,只能是构造的第一个语句

  • this关键字代表当前对象

二、包

包是类的容器,利用包来划分名字空间,用于分隔类名空间,以避免类名冲突。

1.包的定义

(1)语法格式:package 包名

(2)包不能以 java、javax开头

(3)包名通常是全部小写的ASCII字母,并且是一个顶级域名com/deu/gov/net及org,通常使用域名的倒序,

如 adam.com 可以声明为 com.adam.projectname.mypackage

(4)定义包后,Java会在硬盘上生成与包意一一对应的目录。

2.包的作用

存放类 区分类,防止命名冲突 包允许在更广的范围内保护类、数据和方法

3.包的使用

声明包的含义是声明当前类所在的包 导入包的含义是声明当前类要使用到的其他类所在的包 使用非同包下的类需要先导包或者使用全限定类名 子包下的类需要导包 同包、java.lang包下的类不需要导包

三、访问修饰符

[访问修饰符] class 类名 extends 父类名{ 
​
}
1.public

被public修饰的成员变量和成员方法可以在所有类中访问。

2.protected

受保护的,同包下任意类都可以访问【其他包子类也可以访问 static 】

3.private

被private修饰的成员变量和成员方法只能在声明他们中的类里访问,不能在其他类访问。

// package-access : 同包下任意类可以访问

4.类的访问修饰符(package-private/package-access)
修饰符 /作用域 同一包中 不同包中
public 可以使用 可以使用
package-access 可以使用 不可以使用
5.类成员的访问修饰符
位置 public protected 包访问修饰符 private
同类访问
同包其他类访问 ×
同包子类访问 ×
不同包子类访问 × ×
不同包非子类访问 ×</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值