万门JAVA零基础特训班 第5-6讲Java面向对象

1.类的定义:

[类修饰符] class 类名 extends 基类

implements 接口列表

{

      [数据成员定义]

      [成员方法定义]

}

 

2.修饰符分为访问控制符和类型说明符

(1)类的类型说明符主要有两个:final和abstract

(2)类的访问控制符有两个,一个是public(公共类),另一个就是默认(即没有访问控制符)

   注:①一个类被定义为公共类,就表示它能被其他所有的类访问和引用

          ②在一个Java源程序中只能有一个public类,这个类一般含有main方法 

          ③不用public定义的类,其只能被同一个包中定义的类访问和引用

          ④在一个Java程序中可以定义多个这样的类

 

3.构造函数实例化类对象格式: (没有返回值)

类名 对象名 = new 构造函数(即类名) (实际参数)  

 

4.对象的声明和初始化

 

5.程序运行时的内存占用:

 

6. static方法中不能直接调用非static的域或者方法(必须通过对象名引用)

eg. public static int getCount(){

      Person p = new Person();

      p.getName(); //先创建对象再调用,因为是非static方法

       getCountAnother(); //直接调用,因为是static方法

       return count;

}

public static int getCountAnother(){  

         return count++;

}

 

7.静态代码块与非静态代码块的异同点

相同点:(1)都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个

(2)一般在代码块中对一些static变量进行赋值

不同点:(1)静态代码块在非静态代码块之前执行,执行顺序为:静态代码块—>非静态代码块—>构造方法

(2)静态代码只在第一次new执行一次,之后不再执行,而非静态代码块在每new一次就执行一次

静态代码块一般用于初始化,它的执行要早于main方法的执行

 

8.Java语言提供的访问控制范围有4种:

(1)同一个类

(2)同一个包

(3)不同包的子类

(4)不同包的非子类

一般而言,java中的成员变量被声明为private,java的成员方法被声明为public,构造方法大多数时被声明为public,有时也被声明为private

 

9.我们编写软件时希望具有较好的复用性,而复用其它对象的代码有两种方法:

(1)继承:由子对象完全继承父对象的数据和操作,“is”的关系

(2)包容:把一个对象作为另一个对象的一部分,从而达到复用的目的,“has”的关系

 

10.Java不支持类的多继承,但支持接口的多继承。Java中的继承通过关键字extends

构造函数不能被继承

 

11.变量隐藏:在子类对父类的继承中,如果子类的成员变量和父类的成员变量同名,此时称为子类隐藏(override)了父类的成员变量。

子类若要引用父类的同名变量,须用:super.变量名

当通过子类不含参数的构造函数创建子类对象时,先执行父类不含参数的构造函数,再执行子类不含参数的构造函数

 

12.this关键字:

(1)this变量代表对象本身

(2)当类中有两个同名变量,一个属于类的成员变量,而另一个属于某个特点的方法(方法中的局部变量),使用this区分成员变量和局部变量(this代表成员变量

(3)使用this可简化构造函数的调用

 

13.this和super的对比:

无论使用this调用本类构造函数,还是使用super调用父类构造函数,都必须是该方法中的第一条可执行语句!

 

14.方法覆盖(子类对父类方法的重写)中访问权限:

 

15.强制类型转换:

 

16.抽象类是不能实例化的,它的作用是提供一个恰当的父类。因此一般作为其他类的超类,与final类正好相反。

如果一个类里有抽象的方法,则这个类必须声明成抽象的;但一个抽象类中却可以没有抽象方法

 

17.如果一个类没有必要再派生子类, 通常可以用final关键字修饰,表明它是一个最终类

 

18.接口:

(1)接口是一组方法集,接口中包含的方法都是抽象方法,定义方法体的任务留给实现该接口的类去完成

(2)接口是用来实现类间(不相关类)多重继承功能的结构

(3)接口是Java中的一种复合数据类型,是用interface关键字定义

(4)接口是一种特殊的类,一种特殊的抽象类

(5)接口中所有的方法都默认是public abstract的,并且只有方法头和参数列表,没有方法体

(6)接口中所有变量都默认是public static final

(7)接口中没有构造方法

(8)接口可以继承,还可以多重继承(注意和类继承的区别,类只能单继承,即一个类只能有一个父类!但是接口可以有多个父接口)

(9)一个类可以实现多个接口

(10)通过接口可以实现不相关类的相同行为(不需要考虑这些类之间的层次关系),通过接口可以指明多个类需要实现的方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值