JAVA学习笔记day06

目录

1.包

1.1包的概述和使用

1.2导包

2.修饰符

2.1修饰符的分类

2.2权限修饰符

2.3状态修饰符

3.多态

3.1多态概述

3.2多态中成员访问特点:

3.3多态的好处和弊端

3.4多态的转型

4.抽象类

4.1抽象类概述

4.2抽象类的特点

4.3抽象类的成员特点

5.接口

5.1接口概述

5.2接口的特点

5.3接口的成员特点

5.4类和接口的关系

5.5抽象类和接口的区别

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

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


1.包

1.1包的概述和使用

其实就是文件夹

作用:对类进行分类管理

包的定义格式:

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

当不用idea这样方便的工具时,创建包就需要自己完成,以下有两种方法完成:

1)手动建包

按照以前的格式编译java文件         win+r再输入javac Hellowoorld.java

手动创建包                                     在E盘建立文件夹com然后在com下建立文件夹itheima

把class文件放到包的最里面           把Helloworld.class文件放到com下的itheima这个文件夹下

带包执行                                         java.com.itheima.Helloworld

2)自动建包:javac -d.Helloworld.java           java com.itheima.Helloworld

1.2导包

使用不同包下的类时,使用时要写类名加包名作为类的全路径,写起来太麻烦了,为了简化带包的操作,java就提供了导包的功能

例如:没有导包操作import java.util.Scanner;Scanner sc=new Scanner(System.in);会报错

此时就需要写类的全路径:java.util.Scanner sc=new java.util.Scanner(System.in);//java.util是包名,Scanner是其包下的类名

导包的格式:

  • 格式:import 包名;
  • 范例:import cn.itheima.teacher;//cn.ieheima:包名,teacher:类名

2.修饰符

2.1修饰符的分类

  • 权限修饰符
  • 状态修饰符

2.2权限修饰符

2.3状态修饰符

  • final(最终态)
  • static(静态)

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

final修饰的特点:

  • 修饰方法:表明该方法是最终方法,不能被重写
  • 修饰变量:表明该变量是常量,不能再次被赋值
  • 修饰类:表明该类是最终类,不能被继承

final修饰局部变量:

  • 变量是基本类型:final修饰指的是基本类型的数据值不能发生改变
  • 变量是引用类型:final修饰指的是引用类型的地址值不能发生改变,但是地址里面的内容是可以发生改变的。(如:1)finall student st=new student();st.age=20;//引用类型的值发生改变是可以的。2)finall  student st=new student();st=new student();//引用类型的地址值发生了改变,不正确)

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

static修饰的特点:

  • 被类的所有对象共享,这也是我们判断是否使用静态关键字的条件
  • 可以通过类名调用(public static int age;student.age=20;)也可以通过对象名调用(public static int age;student st=new student();st.age=20;)
  • 推荐使用类名调用

static访问特点:

非静态的成员方法:

 

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

静态成员方法:

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

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

3.多态

3.1多态概述

同一个对象,在不同时刻表现出来的不同形态

多态的前提和体现:

  • 有继承/实现关系
  • 有方法重写
  • 有父类引用指向子类对象(animal a=new cat();//animal:父类,cat:子类)

3.2多态中成员访问特点:

  • 成员变量:编译看左边,执行看左边(有父类引用指向子类对象animal a=new cat();//animal:父类,cat:子类,编译时a只能使用animal中的变量,运行时也是按animal中的变量赋值)
  • 成员方法:编译看左边,执行看右边(有父类引用指向子类对象animal a=new cat();//animal:父类,cat:子类,编译时a只能使用animal中的成员方法,运行时按cat中运行)

为什么成员变量和成员方法的访问不一样?

  • 因为成员方法有重写,而成员变量没有

3.3多态的好处和弊端

  • 多态的好处:提高了程序的扩展性,具体表现:定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作
  • 多态的弊端:不能使用子类的特有功能

3.4多态的转型

  • 向上转型:从子到父,父类引用指向子类对象;(animal a=new cat();//animal:父类,cat:子类)
  • 向下转型:从父到子,父类引用转向子类对象;(animal a=new cat();cat c=(cat)a;//animal:父类,cat:子类)

4.抽象类

4.1抽象类概述

在java中,一个没有方法体的方法应该定义为抽象方法,而类中如果有抽象方法,该类必须定义为抽象类

4.2抽象类的特点

1)抽象类和抽象方法必须使用obstract关键字修饰

            public abstract class 类名{}//抽象类

            public abstract void eat();//抽象方法

2)抽象类中不一定有抽象方法,有抽象方法的类一定是抽象类

3)抽象类不能实例化

            抽象类如何实例化呢?参照多态的方式,通过子类对象实例化,这叫抽象类多态

4)抽象类的子类

            要么重写抽象类中所有的抽象方法

            要么是抽象类

4.3抽象类的成员特点

  • 成员变量:可以是变量也可以是常量
  • 构造方法:有构造方法但是不能实例化,用于子类访问父类数据的初始化
  • 成员方法:可以有抽象方法,限定子类必须完成某些动作;也可以有非抽象方法,提高代码复用性

5.接口

5.1接口概述

接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用,java中的接口更多的体现在对行为的抽象

5.2接口的特点

1)接口用关键字interface修饰

      public interface 接口名{}

2)类实现接口用implements表示

     public class 类名 implements 接口名{}

3)接口不能实例化

     接口如何实现实例化呢?参照多态的方式,通过实现类对象实例化,这叫接口多态

     多态的形式:具体类多态、抽象类多态、接口多态

4)接口的实现类

     要么重写接口中所有的抽象方法

     要么是抽象类

5.3接口的成员特点

1)成员变量

       只能是常量

       默认修饰符:public static finall

2)构造方法

       接口没有构造方法,因为接口主要是对行为进行抽象的,是没有具体存在

       一个类如果没有父类,默认继承自object类

3)成员方法

      只能是抽象方法

      默认修饰符public abstract

关于接口中的方法,JDK8和JDK9有一些新特性,后面再讲解

5.4类和接口的关系

  • 类和类的关系:继承关系,只能单继承,但是可以多层继承
  • 类和接口的关系:实现的关系:可以单实现也可以多实现,还可以在继承一个类的同时实现多个接口
  • 接口和接口的关系:继承关系,可以单继承,也可以多继承

5.5抽象类和接口的区别

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

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

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

  • 方法的形参是接口名,其实需要的是该接口的实现类对象
  • 方法的返回值是接口名,其实返回的是该接口的实现类对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值