思维导图
详细
访问控制修饰符
在创建 类 和 方法/属性 时 会用到访问控制修饰符。
修饰符 | 同类 | 同包 | 不同包 |
---|---|---|---|
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; }
}
- 变量作用域
如下图, **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)
<a name="j6n4Y"></a>
#### static的基本用法
1. 声明静态变量
```java
public static final String USER_KEY = "m_key";
/**
* 手机验证码 key
*/
public static final String SMS_KEY = "m_sms_key";
- 声明静态方法 ```java //main方法 public static void main(String[] args){
}
3. 声明静态代码块(可以在其中执行代码并调用static变量)
```java
// 声明一个静态代码块,用于初始化学校数据
static{
School school = new School();
school.setId("1");
school.setName("北京大学");
SCHOOLS.add(school);
school = new School();
school.setId("2");
school.setName("清华大学");
SCHOOLS.add(school);
}
父类对子类实例化
//Animal是父类,Dog是子类
Animal d = new Dog();
//相当于
Dog d = new Dog();
子类构造函数
如果子类中不具备父类的构造函数就会报错。
//父类
public class CustomFile{
// 存储文件路径的变量
public String filePath;
// 存储文件后缀变量,通过后缀来区分文件类型
public String ext;
// 声明一个构造函数,接受文件路径
public CustomFile(String filePath){
//给类变量 filePath 赋值
//this代表的是当前类的实例
this.filePath = filePath;
}
}
//子类继承父类
public class JavaFile extends CustomFile{
// 声明一个构造函数
public JavaFile(String filePath){
super(filePath);//需要用super关键字
}
}
如果需要定义新的构造函数,如下
public class JavaFile extends CustomFile{
private String packageName;
// 声明一个构造函数
public JavaFile(String filePath,String packageName){
super(filePath);
this.packageName = packageName;
}
Map的遍历
一般要先得到key:value格式的集合(entrySet),例子如下:
//key是Integer类型,value是String类型
for (Map.Entry<Integer,String> entry : map.entrySet()){
System.out.println("Key = " + entry.getKey() +
", Value = " + entry.getValue());
}