目录
一、关键字
1. private关键字
private:私有的,即修饰的成员变量或成员方法,外界不能直接对其进行访问,要通过特性的方法来进行操作执行,
被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作
提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰
四种权限修饰符
修饰符 | 同一个类中 | 同一个包中子类无关类 | 不同包的子类 | 不同包的无关类 |
private | √ | |||
默认 | √ | √ | ||
protected | √ | √ | √ | |
public | √ | √ | √ | √ |
2. this关键字
当成员变量与局部变量名称一致时,this指定的变量为成员变量;同样,this跟随着对象,实例化对象时,哪个方法调用时,this就代表哪一个对象
3. super关键字
指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类
this和super的三种用法
(1)普通的直接引用
this:指向当前对象本身,this.xxx用来引用当前对象的成员
super:指向当前对象的父类,这样就可以用 super.xxx 来引用父类的成员。
(2)子类中的成员变量或方法与父类中的成员变量或方法同名
this.成员变量/成员方法 访问的是当前类的成员变量/成员方法
注意:方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,不带this修饰的变量指的是成员变量。
class Person {
private int age = 10;
public Person(){
System.out.println("初始化年龄:"+age);
}
public int GetAge(int age){
this.age = age;
return this.age;
}
}
public class test1 {
public static void main(String[] args) {
Person Harry = new Person();
System.out.println("Harry's age is "+Harry.GetAge(12));
}
}
super.成员变量/成员方法 访问的是父类的成员变量/成员方法
class Country {
String name;
void value() {
name = "China";
}
}
class City extends Country {
String name;
void value() {
name = "Shanghai";
super.value(); //调用父类的方法
System.out.println(name);
System.out.println(super.name);
}
public static void main(String[] args) {
City c=new City();
c.value();
}
}
(3)引用构造函数
super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。
this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。
class Person {
public static void prt(String s) {
System.out.println(s);
}
Person() {
prt("父类·无参数构造方法: "+"A Person.");
}//构造方法(1)
Person(String name) {
prt("父类·含一个参数的构造方法: "+"A person's name is " + name);
}//构造方法(2)
}
public class Chinese extends Person {
Chinese() {
super(); // 调用父类构造方法(1)
prt("子类·调用父类"无参数构造方法": "+"A chinese coder.");
}
Chinese(String name) {
super(name);// 调用父类具有相同形参的构造方法(2)
prt("子类·调用父类"含一个参数的构造方法": "+"his name is " + name);
}
Chinese(String name, int age) {
this(name);// 调用具有相同形参的构造方法(3)
prt("子类:调用子类具有相同形参的构造方法:his age is " + age);
}
public static void main(String[] args) {
Chinese cn = new Chinese();
cn = new Chinese("codersai");
cn = new Chinese("codersai", 18);
}
}
二、修饰符
1. package
package是包,就是文件夹,用来管理类文件,区别类名的命名空间。
示例: package com.example.project;
包的作用
-
1、把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
-
2、如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
-
3、包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
2.import
在Java中,import 关键字用于导入其他类或包中定义的类型,以便在当前源文件中使用这些类型。
示例:import 包名1.包名2.包名3/类名;
导入整个包
import com.runboo.package;
导入单个类
import com.runboo.MyClass;