01_Java-面向对象的三大特征

本文详细介绍了Java中的包管理,包括包的定义、使用及自动建包过程。接着讨论了Java的修饰符,重点讲解了final和static关键字的用法及其在方法、变量和类中的应用。此外,还涵盖了形参和返回值的使用,以及内部类的概念,包括成员内部类、局部内部类和匿名内部类。最后,文章阐述了构造方法的作用、构造方法的重载以及方法的重写原则。
摘要由CSDN通过智能技术生成

Java_包

1.包

包的概述和使用

起始就是文件夹

作用:对类进行分类管理

包的定义格式

  • 格式:package 包名;(多级包用.分开)
  • 范例:package com.itheima;

带包的Java类编译和执行

手动建包:

  • 按照以前的格式编译Java文件    javac HelloWorld.java
  • 手动创建包    在E盘建立文件夹com,然后在com下建立文件夹itheima
  • 把class文件放到包的最里面    把HelloWorle.class文件放到itheima这个文件夹下
  • 带包执行    java com.itheima.HelloWorld

自动建包:

  • javac -d.HelloWorld.java    java com.itheima.HelloWorld

2.导包

导包的概述和使用

使用不同包下的类时,使用的时候要写类的全路径,写起来太麻烦了

为了简化带包的操作,Java就提供了导包的功能

导包的格式

格式:imporet 包名;

范例:inport cn.itcast.Teacher

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Java_修饰符

1.权限修饰符

可以修饰属性和方法

修饰符同一个类中

同一个包中

子类无关类

不同包的

子类

不同包的

无关类

private
默认
protected
public

2.状态修饰符

2.1 final修饰符(最终态)

final关键字是最终的意思,可以修饰成员方法,成员变量,类

final 修饰的特点

  • 修饰方法:表明该方法是最终方法,不能被重写
  • 修饰变量:表明该变量是常量,不能再次被赋值
  • 修饰类:表明该类是最终类,不能被继承
  • 被final修饰过的类,此类中所有方法默认都是final修饰
  • 类中如果不需要有子类,不需要被扩展,类中的方法不允许被重写,就用final修饰该类。

final关键字修饰方法的特点

  • 用final修饰的方法可以被继承,但不能被覆盖重写。
  • final修饰一个对象,那么这个对象的引用不能变,但是值是可以变得。

final修饰变量的特点

修饰完变量之后,该变量变为常量,后续使用不能再重新赋值。

final可以用来修饰类,方法和属性,不能修饰构造方法。

Java提供的很多类都是final类,如String类,Math类,它们不能再有子类。Object类中一些方法,如getCode(),notify(),wait()都是final方法,只能被子类继承而不能被重写,但是hashCode(), toString(), equals(Object obj)不是final方法,可以被重写。

3.5 final修饰局部变量

  • 变量是基本类型:final修饰指的是基本类型的数据值不能发生改变
  • 变量是引用类型:final修饰指的是引用类型的地址值不能发生改变,但是地址里面的内日是可以发生改变的

2.2 static修饰符(静态)

static是什么

static可以用来修饰属性,方法和代码块。

//静态属性(变量)

//静态代码块

//静态方法

static修饰的变量属于这个类所有,即由这个类创建的所有对象共用同一个static变量。

通常把static修饰的属性和方法称为类属性(类变量),类方法。

static的执行过程

在加载类的过程中,完成静态变量的内存分配,在执行静态代码块,两者是在创建对象之前执行的。

static注意事项

静态方法中不能使用this和super关键字

使用常量时,为了方便调用,推荐使用static来修饰

类属性,类方法可以通过类名和对象访问,实例属性,实例方法只能通过对象名访问。

类方法只能访问类属性和其他类方法。静态方法中不能使用this和super关键字。

常见错误

在方法里不能定义static变量

构造方法不能添加返回值类型

static修饰语非static修饰的区别

static 关键字是静态的意思,可以修饰成员方法,成员变量

static 修饰的特点

  • 被类的所有对象共享:这也是我们判断是否使用静态关键字的条件
  • 可以通过类名调用:当然也可以通过对象名调用,推荐使用类名调用

3.7 static 访问特点

非静态成员方法

  • 能访问静态的成员变量
  • 能访问非静态的成员变量
  • 能访问静态的成员方法
  • 能访问非静态的成员方法

静态的成员方法

  • 能访问静态的成员变量
  • 能访问静态的成员方法

总结成一句话就是:静态成员方法只能访问静态成员

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

形参和返回值

1.1 类名作为形参和返回值

  • 方法的形参是类名,其实需要的是该类的对象
  • 方法的返回值是类名,其实返回的是该类的对象

1.2 抽象类名作为形参和返回值

  • 方法的形参是抽象类名,其实需要的是该抽象类的子类对象
  • 方法的返回值是抽象类名,其实返回的是该抽象类的子类对象

1.3 接口名作为形参和返回值

  • 方法的形参是接口名,其实需要的是该接口的实现类对象
  • 方法的返回值是接口名,其实返回的是该接口的实现类对象

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

内部类

1.1 内部类概述

  • 内部类:就是在一个类中定义一个类。
  • 举例:在一个类A的内部定义一个类B,类B就被称为内部类

内部类的定义格式

  • 格式:

public class 类名{

        修饰符 class 类名{

        }

}

  • 范例:

public class Outer{

        public class Inner{

        }

}

内部类的访问特点

  • 内部类可以直接访问外部类的成员,包括私有
  • 外部类要访问内部类的成员,必须创建对象

1.2 成员内部类

按照内部类在类中定义的位置不同,可以分为如下两种形式

  • 在类的成员位置:成员内部类
  • 在类的局部位置:局部内部类

1.3 局部内部类

  • 局部内部类是在方法中定义的类,所以外界是无法直接使用,需要在方法内部创建对象并使用
  • 该类可以直接访问外部类的成员,也可以访问方法内的局部变量

1.4 匿名内部类

前期:存在一个类或接口,这里的类可以是具体类也可以是抽象类

  • 格式:

new 类名或者接口名(){

        重写方法;

};

  • 范例:

new lnter(){

        public void show(){

        }

}

本质:是一个继承了该类或者实现了该接口的子类匿名对象

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

构造方法

定义

构造方法的名称和类名相同,没有返回值类型。

作用:

创建对象时执行一些初始化操作。

语法:

访问修饰符 [无返回值类型] 构造方法名(可以指定参数){ // 初始化代码 }

构造方法名与类名相同

系统可以提供默认的无参构造函数

构造方法重载

什么是构造方法重载

同一个类的构造方法的方法名必须相同。

同一个类的构造方法的参数列表(方法形参的个数或参数类型)不同。

与方法返回值和方法修饰符没有任何关系。

为什么用构造方法重载

创建对象的时候完成不同属性的动态赋值。

1.构造方法概述

  • 构造方法是一种特殊的方法
  • 作用:创建对象
  • 功能:主要是完成对象数据的初始化

格式:

修饰符 类名(参数){

}

修饰符一般用:public

2.构造方法的注意事项

构造方法的创建

  • 如果没有定义构造方法,系统将给出一个默认的无参构造方法
  • 如果定义了构造方法,系统将不再提供默认的构造方法

构造方法的重载

  • 如果自定义了带参构造方法,还要使用无参数构造方法,就必须再写一个无参数构造方法

推荐的使用方式

  • 无论是否使用,都手工书写无参构造方法

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

方法的重写

什么是重写

在继承关系中,子类会自动继承父类中定义的方法,但是时子类中需要对继承的方法进行一些修改,即对父类的方法进行重写。

方法的重写又称为方法的覆盖,在继承中还有一种特殊的重写方式,即子类与父类的成员方法返回值,方法名称,参数类型及个数完全相同,唯一不同的是方法实现内容,这种特殊重写方式被称为重构

重写的特点

存在于父类和子类之间

重写必须建立在继承的基础上,没有继承就没有重写的概念

方法名,参数,返回值相同

子类方法不能缩小父类方法的访问权限

private,final等修饰的属性,方法

父类方法私有,不能重写

构造方法也会被重写吗?不能被继承,因此不能重写

方法重写的规则

方法名相同

参数列表相同

返回值类型相同或者是其子类

访问权限不能小于父类的被重写方法

方法重载与方法重写

super关键字来访问父类的成员

super只能出现在子类的方法和构造方法中

super调用构造方法时,只能是第一句

super不能访问父类的private成员

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值