极客java05

1.给类和方法加注释

javadoc格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.geekboys.superMarket;

/**
* 对类的说明
* 描述类的功能
* @author geekboy
* @since 2001
*/
public class MerchandiseV2 {
public int count;
public String name;

/**
*
* @param num
*/
public void MakeEnough(int num) {
System.out.println(count);
}

/**
* 返回值加1
* @param a
* @return
*/
public int get(int a) {
return a+1;
}
}

2.成熟的类的对象要自己做事情

  • 初始化成员变量

  • 简单访问和设置成员变量的值

  • 专有的计算逻辑

  • 用类定义成员变量,把操纵成员变量的代码都放在类里,就是封装

    • 可以集中管控,自己的成员别人不能随便修改
    • 代码逻辑可以公用
    • 更好的抽象一类事物

3.方法大的签名和重载

  • 方法签名:方法名+依次参数类型。注意,返回值不属于方法签名。方法签名是一 个方法在一个
  • .类中的唯一标识
  • 在同一个类中方法可以重名,凡是签名不可以重复。一个类中如果定义了名字相同,签名不同的方法,就叫做方法重载
  • 注意:放回值不属于方法签名的一部分,不能帮助确定调用哪个方法

4.重载的参数匹配规则

  • 方法调用的时候参数不必完全一样,对于数字类型的参数,实参可以自动转换即可
  • 依次:byte,short,int ,long ,float,double
  • 重载的规则是选择最近的去调用

5.构造方法

作用:让init方法在对象创建的时候就自动调用
  • 构造方法的方法名必须和类名相同,而且构造方法没有返回值
  • 构造方法可以有参数,规则与普通方法一样
  • 如果没有添加构造方法,java会默认自带以个无参结构方法,如果我们添加,java就不会做
  • 事实上我们一直在使用构造方法,这也是为什么创建对象时,类名后面有一个括号
  • 构造方法不能通过点操作符调用,只有在new语句时,间接使用

6.构造方法的重载和相互调用

  • 构造方法才能调用重载的构造方法,语法为this(实参列表)
  • 构造方法不能自己调用自己
  • 在调用重载的构造方法时,不能使用成员变量,从语义来讲,这个对象还没被初始化完成
  • 在构造方法里才能调用重载的构造方法,必须是方法的第一行。后面可以有代码
构造本质
  • 构造方法执行前,会给执行给局部变量赋初始值的操作
  • 构造方法在内部变成了方法

7.静态变量

  • 尽量不要使用Magic Number;

  • 如果将折扣作为一个成员变量,会浪费空间

  • 静态变量使用static修饰符

  • 静态变量如果不赋值,java也会为其分配类型初始值

  • 静态变量一般全使用大写字母加下划线分割,(习惯)

  • 所有代码都可以使用静态变量,只要根据防范控制符的规范,让静态变量对其可见即可

  • 比如public 的静态变量,所有代码都可以使用她

导入变量
  • 使用import static来引入一个静态变量,就可以直接使用静态变量名访问了
  • import static 也可使用*来引入一个类中所有的静态变量
  • 也可以使用类名来访问静态变量

8.静态方法

  • 也使用static修饰符
  • 静态方法可以使用静态变量:包括自己类的静态变量和运行访问别的类的静态变量
  • 除了没有this,静态方法定义和成员方法一样
  • 静态方法没有this自引用,它不属于某个实例,调用的时候也无需引用,使用类名调用,所以她也不能直接访问成员变量
  • 当然在静态方法里,也可以自己创建对象,或者通过参数获得对象的引用,进而调用方法和成员变量

9.静态方法的重载

  • 静态方法的重载也一样,方法签名不同即可;方法名+参数类型

  • 判断调用哪个的方法,也是根据调用时参数匹配决定的

  • 三元操作符

    • true ? a : b;
    • 如果时true返回a,否则返回b
  • 返回值不算是方法签名,重载的方法可以有完全不同的返回值类型

10.static代码块和static变量初始化

  • 使用某个静态变量的代码块必须在静态变量的后面(但是赋值没关系)
  • 在静态代码块中可以使用任意合法代码
  • 在static的代码会被放在clinit中,会在每个class初始化的时候被调用一次
你的支持是我最大的动力!
0%