常用的关键字:
一、访问限定符:是用来对类、属性、方法、构造方法进行修饰的
访问限定符的范围
1. public 在同一个程序中的任何地方都可以访问
2.protected 在同一个类中和同一个包中以及不同包中的子类中可以访问
3.默认不写 在同一个类中和同一个包中被访问
4.private 只能在同一个类中被访问
二、this和super
this的用法:
this.属性 this.方法(); 用来表示当前对象
this(参数列表); 用在构造方法符第一行,表示当前类的某一个构造方法 具体用在哪一个构造方法取决于参数列表
super的用法:
super.属性 super.方法(); 用来在子类中表示父类对象,调用父类的方法
super(参数列表); 用在子类的构造方法中,用来调用父类的某一个构造方法
具体的哪一个构造方法取决于参数列表
- public class Student {
- public String name;
- public Student(){
- // this用在构造方法的第一行
- // 表示当前类的某一个构造方法
- this("张三");
- }
- public Student(String name){
- this.name = name;
- }
- public void study(){
- System.out.println(name+"在休息");
- }
- public class UNStudent extends Student{
- public UNStudent(){
- //默认调用父类的无参构造方法
- super();
- System.out.println("UNStudent");
- }
- public void study(){
- System.out.println(name+"在学习");
- }
- }
- public class Main {
- public static void main(String[] args) {
- //创建Student类的对象
- Student s = new Student();
- //调用Student中的方法
- s.study();
- //创建UNStudent的对象
- UNStudent u = new UNStudent();
- //调用UNStudent中的方法
- u.study();
- }
三、final
final的用法:用来修饰类、变量、方法
final修饰类: 表示这个类不能被继承
final修饰方法:表示这个方法不能被重写[覆盖]
final修饰变量:表示这个变量不能被修改,且只能赋值一次
四、static
static的用法:可以用来修饰类、属性、方法、代码块
static的属性和方法是不需要创建对象来调用的
static属性和成员属性的区别:
static属性[类属性]:
该类的所有的对象共享的一个属性,只会占用一块内存空间
成员属性 :
每一个对象都单独占用一块内存空间,必须通过对象才能调用
static方法和成员方法的区别:
static方法[类方法]:
类方法中不能再调用this和super表示对象
类方法是调用父类的还是子类重写的只和类名有关
成员方法:
成员方法是调用父类的还是子类重写的只和对象本身有关
- public class A {
- public A() {
- System.out.println("A");
- }
- }
- public class B {
- public B() {
- System.out.println("B");
- }
- }
- public class Test {
- //成员属性
- public A a = new A();
- //类属性
- public static B b = new B();
- //成员方法
- public void change() {
- System.out.println("change");
- }
- //类方法
- public static void execute() {
- System.out.println("execute");
- }
- }
- public class Demo {
- public static void main(String[] args) {
- //调用静态方法
- Test.execute();
- //调用成员方法需要对象
- Test t = new Test();
- t.change();
- }
- }