思维导图

面向对象入门继承、修饰符、接口 - 图1

详细

访问控制修饰符

在创建 方法/属性 时 会用到访问控制修饰符。

修饰符 同类 同包 不同包
public 有权限 有权限 有权限
protected 有权限 有权限 无权限
默认 有权限 有权限 无权限
private 有权限 无权限 无权限

setter、getter规范

  • 代码例子 ```java public class User{ //定义了一个关于名称的实例变量 private String name;

    /**

    • 获取 name 的值 */ public String getName(){ return this.name; }

    /**

    • 设置 name 的值 */ public void setName(String name){ this.name = name; }

}

  1. - 变量作用域
  2. 如下图, **this** 关键字就是类内部的实例变量,通过 **this** 可以轻松调用实例内的方法和成员。<br />在方法参数的变量名和成员变量名同名了,但是由于在**不同的作用域**,所以不会有影响。<br />![setter2.svg](https://cdn.nlark.com/yuque/0/2020/svg/564594/1590978425274-a8e75e52-83cb-49e3-a5d0-be19c6c6241e.svg#align=left&display=inline&height=302&margin=%5Bobject%20Object%5D&name=setter2.svg&originHeight=301&originWidth=526&size=2998324&status=done&style=none&width=526)
  3. <a name="j6n4Y"></a>
  4. #### static的基本用法
  5. 1. 声明静态变量
  6. ```java
  7. public static final String USER_KEY = "m_key";
  8. /**
  9. * 手机验证码 key
  10. */
  11. public static final String SMS_KEY = "m_sms_key";
  1. 声明静态方法 ```java //main方法 public static void main(String[] args){

}

  1. 3. 声明静态代码块(可以在其中执行代码并调用static变量)
  2. ```java
  3. // 声明一个静态代码块,用于初始化学校数据
  4. static{
  5. School school = new School();
  6. school.setId("1");
  7. school.setName("北京大学");
  8. SCHOOLS.add(school);
  9. school = new School();
  10. school.setId("2");
  11. school.setName("清华大学");
  12. SCHOOLS.add(school);
  13. }

父类对子类实例化

  1. //Animal是父类,Dog是子类
  2. Animal d = new Dog();
  3. //相当于
  4. Dog d = new Dog();

子类构造函数

如果子类中不具备父类的构造函数就会报错。

  1. //父类
  2. public class CustomFile{
  3. // 存储文件路径的变量
  4. public String filePath;
  5. // 存储文件后缀变量,通过后缀来区分文件类型
  6. public String ext;
  7. // 声明一个构造函数,接受文件路径
  8. public CustomFile(String filePath){
  9. //给类变量 filePath 赋值
  10. //this代表的是当前类的实例
  11. this.filePath = filePath;
  12. }
  13. }
  1. //子类继承父类
  2. public class JavaFile extends CustomFile{
  3. // 声明一个构造函数
  4. public JavaFile(String filePath){
  5. super(filePath);//需要用super关键字
  6. }
  7. }

如果需要定义新的构造函数,如下

  1. public class JavaFile extends CustomFile{
  2. private String packageName;
  3. // 声明一个构造函数
  4. public JavaFile(String filePath,String packageName){
  5. super(filePath);
  6. this.packageName = packageName;
  7. }

Map的遍历

一般要先得到key:value格式的集合(entrySet),例子如下:

  1. //key是Integer类型,value是String类型
  2. for (Map.Entry<Integer,String> entry : map.entrySet()){
  3. System.out.println("Key = " + entry.getKey() +
  4. ", Value = " + entry.getValue());
  5. }