• 1 类
  • 类的定义
  • 对象的创建与引用
  • 构造方法与对象初始化
  • 方法的重载
  • this关键字
  • 静态变量和静态方法
  • 类的继承
  • super 关键字
  • 2 访问控制属性
  • 类与包
  • 类的访问控制
  • 类成员的访问控制
  • 抽象类
  • 3 内部类和匿名类


1 类

类的定义

类用于描述同种对象所拥有的属性和能完成的行为操作。定义一个类之后,就可以用它来创建对象。我们一般说,某个对象时属于某个类的对象。比如“农夫果园”里的张三是一名农名,这里张三是对象,农民是张三这个对象所属的类。

Java的类有两大部分:系统定义的类和用户定义的类。

对象的创建与引用

java 构造一个 request java构造一个类_编程语言

构造方法与对象初始化

java 构造一个 request java构造一个类_类_02

  1. 有参构造方法: 实例化对象时传入参数进行对象的初始化。
  2. 无参构造方法: 无参构造方法的类的默认构造方法,在实例化对象时会默认调用无参构造方法,如果类中没有有参构造方法,则在编译时会默认提供一个无参的构造方法。即如果存在有参构造帆帆发,编译时不会提供一个无参构造方法,如果需要使用无参构造方法,需要手动添加。

方法的重载

一个类中可以定义多个同名的方法。只要这些方法具有不同的参数表即可,这个过程被称为方法的重载。

所谓的参数表不同可以时参数的个数不同,参数的类型不同或者时参数类型的顺序不同。

重载的意义在于:它允许相关的方法使用同一个名字,当调用一个重载的方法时,Java通过检查调用语句中参数的数量,类型和次序选择适当的方法。

this关键字

  1. 用this()调用构造方法:当一个类中的构造方法有重载时,如果向要在一个构造方法内部调用另一个构造方法,则可以用this( 参数列表)的形式进行调用。
  2. 引用成员变量

静态变量和静态方法

java 构造一个 request java构造一个类_java 构造一个 request_03


java 构造一个 request java构造一个类_编程语言_04


静态变量一般用类名直接访问,非静态变量必须用对象访问,对象也可以访问静态变量,但一般不推荐。


静态方法类似


java 构造一个 request java构造一个类_java_05

类的继承

Java中的继承是在子类定义时通过extends关键字来实现的,子类定义的基本格式为
class 子类名 extends 父类名

新定义的子类不仅可以从父类那里继承成员变量和成员方法,还可以定义自己新的变量和方法。

Java语言仅提供单继承结构,不支持多继承结构,即Java程序中的每一个类只允许有一个直接的父类,即extends后面的父类名只能有一个。

覆盖父类方法:子类可以覆盖父类,即如果子类对从父类继承来的方法的功能不满意,可以重新对该方法进行重写,实现对父类方法的覆盖。方法覆盖后,用子类对象去调用该方法,执行的时覆盖后的方法,而不是继承的父类方法。但如果用父类的对象去调用,则执行的是父类的方法。

>重载父类方法:子类不仅可以覆盖父类的方法,还可以重载父类的方法,具体是通过方法中不同的参数表实现的,即子类和父类中的方法名相同,但子类中的方法参数表不同。

super 关键字

在子类定义时,有两种情况需要用到super关键字

  1. 在子类的构造方法中调用父类的构造方法
  2. 在子类的成员方法中,用super关键字作为前缀访问继承自父类的成员变量和成员方法。

this和super的区别



2 访问控制属性

类与包

  • 包包含一组类,通常相关或相似的类组织在同一个包里,方便类的查找和使用。例如一个名为Company的包,可以包含Employee、Manager和Department等类。
  • 位于同一个包里的类默认是可以相互访问的。
  • 包采用层次化的树形结构,包中可以包含许多类,也可以包含下层包。就像同一个文件夹中不能有同名文件一样,同一包中的类的名字也不能相同。如果同名的类位于不同包中,则它们被认为是不同的,因而以包的形式组织类可以解决命名重复问题。
  • 要使用一个包的类,一般用import语句引入

类的访问控制

类的访问控制属性有两种

  1. public,表示这个类可以被所有类使用,可以创建这个类的对象或用这个类派生新的类
  2. 省略,表示这个类只能被同一个包中的类使用,而不能被其他包中的类使用,这种访问特性又称为包访问。

类成员的访问控制

当一个类的访问控制符是public时,并不代表该类的所有成员变量和方法也同时对程序的其他部分可见。类成员同样可以根据需要设定访问控制属性。

java 构造一个 request java构造一个类_java 构造一个 request_06

抽象类

java 构造一个 request java构造一个类_java_07


#接口

java 构造一个 request java构造一个类_java_08