5. 类、对象、方法 java

类、对象、方法

1.        类里面只能有方法和变量,不能有具体操作,具体操作应放在方法里。

2.        方法参数

①基本数据类型值的参数是实参和形参之间值的传递,改变方法内形式参数的值不会影响到方法外部变量的值。

②对象(数组)类型的参数,参数值是对象(数组)的引用,在方法内对这个对象(数组)的修改都会影响到作为实际参数的原始数组。

3.        迭代方法组成:1. 终止条件  2. 简化步骤

注:终止条件应该放在简化步骤前面

4.        返回值非空的方法也可以当语句调用。

5.        类中的成员变量有缺省值,而方法中的局部变量没有缺省值。

6.       类声明的完整格式

[修饰符]class<类名>[extends <父类名>][implements<接口名>]

7.       成员变量定义的格式

[访问权限符][static][final]类型 变量1[,……]

8.       创建方法的格式

[修饰符][abstract][static][final]返回值类型 方法名([参数列表])

9.       不定长参数方法的语法:

返回值 方法名(参数数据类型…参数名称)

Eg:int mm(int …a)  等效于 int mm(int[]a)  其中a.length为参数的长度。

10.    New操作,就是创建一个实例(自动调用构造方法)

11.    Java中用finalize()方法(终止器)实现当对象即将被销毁时做的一些善后处理。

12.    类的构造方法

①无返回值  ②与类同名  ③当类没有任何构造方法时,系统会自动生成无参构造方法,自动生成的构造方法访问权限与类权限相同

13.    如果一个类中有多个构造函数,可实现其中一个,其他的构造函数通过this调用实现。对于重载方法,同样适用。

14.    实例成员只归该实例所有;静态成员归所有实例所共有,静态成员用static修饰,调用方式:类名.类静态成员;静态方法中只能包含静态成员。

Static方法中,只能使用static成员、确定实例、挂靠外部实例上的内部实例。

15.    主方法的形参(String[] args),arg[0]~arg[n-1]代表第1个到第n个参数,args.length表示形参的个数。

16.    方法重载:名字相同,参数不同,返回值随意。

17.    可以把多个类放在一个文件中,但是只能有一个是公用的(public),其他类对这个公用类起辅助作用。文件名必须与公用类同名。

18.    类的修饰符   public abstract   final  (默认时,可被同包访问)

19.    成员变量修饰符   public protected(同包、本类、该类的子类)  private(本类)     (默认时,可被同包访问)

20.    若不想别人创建类的实例,可以将构造方法定义为私有的。

21.    Native关键字表明这个方法不是用java编写的,而是在java虚拟机中为本地平台实现的。

22.    Final 修饰变量,此变量为常量

     修饰方法,此方法不能被覆盖

        修饰类,此类不能作为父类

23.    Final变量(常量)

①可以修饰数组,数组内容为常量。

②可以修饰对象,对象引用不变,对象里的内容可变,若想均不变,可用static修饰。

③在对象中使用 static final 可以开辟一个恒定不变的区域。

④在声明时没有为final变量赋值,称为空白final,在构造方法中可以为空白final赋值。

⑤为方法设置final参数,方法体内不可以改变参数的值。

24.    Final方法

①定义为final的方法,子类不能覆盖,且final方法效率比非final方法高。

②父类定义为private的方法,子类无法访问,自然无法覆盖。因此,父类定义为private final的方法,子类可重新写此方法,但该方法不是覆盖,而是新生成的。

25.    抽象类:将一个父类设计的非常抽象(一般、通用),没有具体实例的类。

语法:[修饰符] abstract class 类名

注:①不能使用new创建实例   ②抽象方法一定在抽象类中,只给头,不实现(eg:public abstract  void mm(int);) ③非抽象子类必须实现抽象父类的所有抽象方法   ④抽象方法一定在抽象类中,抽象类可以包含非抽象方法

26.    强制类型转换

K mm =(K)nn; →→将父类实例nn转换为子类实例。

27.    使用instanceof运算符判断对象是否是某类的一个实例

语法:对象instanceof 类  →→ 返回值为Boolean

Eg: if(mm  instanceof M){…..}

28.    若一个对象实例=null,即没有分配空间,则实例方法均不能使用,否则会报指针越界错误。

29.    Static变量是在第一次使用类时初始化,instance变量是在声明实例时初始化

30.    对于void型方法,也可使用(return;)语句来终止方法。

31.    对象所属的实际类在运行时决定使用哪个方法以及相应的哪个实现

对象的声明类型在编译时决定使用哪个数据域和静态方法。

32.    内部类:在类里面定义的类。

①内部类可以直接调用它的外部类的数据和方法。

②内部类可以使程序简短易懂。

③内部类经编译后,它的名称如下:“外部类名称$内部类名称.class”

④使用原则:当一个事物包含另一个事物,另一个事物需要使用前一个事物的成员时,可以把另一个事物写成内部类。

33.    一般内部类(成员内部类)

成员内部类对象依赖于外部类对象而存在

声明方式: 外部类. 内部类 xx = 外部类对象 .内部类对象

this代表本类引用,外部类.this代表父类引用

34. 静态内部类

在内部类前添加static,这个内部类就变为静态内部类。

静态内部类可以有非静态成员

访问静态内部类静态成员   外部类.内部类.静态成员

访问静态内部类非静态成员    外部类. 内部类对象.非静态成员

35.    局部内部类

在方法内部定义的类。

36.    匿名内部类(用于简化代码书写)

语法:new 接口(父类) {  接口实现}; Or   new 接口(父类){ 接口实现} .  方法();

注:匿名内部类编译后,生成“外部类名$序号.class”文件,序号以1~n排列,分别代表1~n个匿名内部类。

37. 静态成员与变量在编译时声明属于静态绑定,实例方法在运行时声明属于动态绑定。


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值