关键字概述
- 什么是关键字—就是被java语言赋予特殊含义的单词。
- 关键字的特点—组成关键字的字母都是小写
常见关键字
一.private关键字
1. private关键字的特点
a:是一个权限修饰符,私有的
b:可以修饰成员变量和成员方法
c:被修饰的成员只能在本类中访问,外界则无法访问
2. private最常见的应用
(1)把成员变量用private修饰
(2)提供对应的getXxx()和setXxx()方法
public class Phone {
private String name;
private int price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public void call(){
System.out.println("打电话");
}
public void sendMessage(){
System.out.println("发短信");
}
}
public class PhoneTest {
public static void main(String[] args) {
Phone phone=new Phone();
phone.setName("小米");
phone.setPrice(1000);
System.out.println(phone.getName());
System.out.println(phone.getPrice());
phone.call();
phone.sendMessage();
}
}
二.static关键字
1. static关键字的特点
a:状态修饰符,静态的,可以修饰成员变量,也可以修饰成员方法
b:被静态修饰的成员,随着类的加载而加载,优先于对象存在
c:被静态所修饰的变量是一个共享变量,被类的所有对象共享
d:被静态所修饰的成员可以通过对象名调用也可以通过类名调用,推荐使用类名调用
2. static关键字的注意事项
(1)在静态方法里面,只能访问静态的成员,不能访问非静态的成员
原因:被静态所修饰的成员是随着类的加载而加载,出现的时机比较早;而非静态成员是随着对象的创建而创建的,对象是后来才有的;先有的不能访问后有的。
(2)静态方法里面不能出现this关键字
this代表本类的一个引用,是随着对象的创建而存在,对象是后来才有的。
3. static关键字的应用
public class MyTest {
int a=100;
static int b=10000;
public static void main(String[] args) {
test();
MyTest myTest = new MyTest();
myTest.test2();
MyTest.test();
System.out.println(myTest.a);
System.out.println(b);
}
public static void test(){
System.out.println("abc");
}
public void test2() {
System.out.println("ab2222c");
}
}
三.this关键字
1. 为什么要有this
当我们的成员变量与局部变量相同的时候,如果我们不使用this关键字,那么会导致一个问题:就是局部变量隐藏了成员变量的问题
2. this关键字的特点
是当前类的对象引用。它代表当前类的一个对象。谁调用这个方法,那么该方法的内部this 就代表谁。
3. this关键字的应用
解决局部变量隐藏成员变量
public class MyTest {
int num=100;
public static void main(String[] args) {
Dog dog = new Dog();
dog.show(10,50);
}
}
public class Dog {
int num=100;
public void show(int a,int num){
System.out.println(a);
System.out.println(num);
System.out.println(this.num);
}
}
4. this和super的区别
this代表的是本类对象的引用
super代表的是父类存储空间的标识,是父类的引用,可以操作父类的成员
public class Test6 {
public static void main(String[] args) {
Zi zi = new Zi();
zi.show(1);
}
}
class Fu{
int num=1000;
int b=1;
}
class Zi extends Fu{
int num=10;
int c=20;
public void show(int num){
System.out.println(num);
System.out.println(this.num);
System.out.println(super.num);
System.out.println("--------------------");
System.out.println(this.c);
System.out.println(super.b);
}
}
四.final关键字
1. 为什么会有final
由于继承中会有一个方法重写的现象,而有时候我们不想让子类去重写父类的方法,针对这种情况java就给我们提供了一个关键字final。
2. final关键字的特点
a.final关键字是最终的意思,可以修饰类,变量,成员方法
b.修饰类:被修饰的类不能被继承
修饰方法:被修饰的方法不能被重写
修饰变量:被修饰的变量不能被重新赋值,因为这个量变成了常量
c.final修饰局部变量
基本数据类型:其值不能被改变
引用数据类型:其地址值不能被改变
public class Test2 {
public static void main(String[] args) {
Zi zi = new Zi();
}
}
class Fu {
static {
System.out.println("静态代码块Fu");
}
{
System.out.println("构造代码块Fu");
}
public Fu() {
System.out.println("构造方法Fu");
}
}
class Zi extends Fu {
static {
System.out.println("静态代码块Zi");
}
{
System.out.println("构造代码块Zi");
}
public Zi() {
System.out.println("构造方法Zi");
}
}