关键字

关键字定义
定义:一些在JAVA中赋予了其指定含义的词语(一般在java程序中有明显区别,共54个)。
与类相关:public(公共类)、private(非公有类)、protected、 class(一般类)、 interface(定义接口)、 implements(实现继承)、 extends(继承类)、 import 、package(包)、abstract(定义抽象类)。
与方法函数/属性相关:void、return(结束整个方法,与下面break和contiue区分开)、static(静态)、final。
八大基本数据类型:int(整形)、short(整形)、byte()、long()、
char()、boolean()、double()、float()。
循环判断:for  Switch()  do while  break(跳出当前循环) continue(中断此次循环,进入下一循环 ) if()      case( )
swith(){//int/short(一般是直接转化为int,因为short的精度比int小。无法将long写入也是因为long比int精度高,除非强转)/ String(JDK1.7版本以前不能用) 枚举类型
case **:break;
}


异常:try  catch  throw  throws  finally(现阶段无需了解)
其他:this  super
goto(保留字,作用是先写在程序里,以为了以后用时做准备。本身无任何含义)
2.关键字命名


1.访问权限修饰符(修改类、方法、属性):
public:整个工程随意访问,不管是跨类还是跨包
protected:同一个包下的类可以随意访问,跨包不行(跨包继承是可以继承到受保护的属性或者方法)
默认不写(独立的访问权限):同一个包下的类可以随意访问,跨包不行
private:仅限于当前类自己可以访问,其他类拥有对象也无法访问私有属性/方法
(由上到下,权限由大到小)
如:用public类:
public class Student {
public String name;
public String age;
public String sex;
public String address;
}
此时程序运行正常
若依次进行修改:
  public String name;
protected int age;
   String sex;
private String address;
那么
private String address;运行错误
这是因为用别的方法无法调用本对象,但改为自己使用的则不同。
public void study(){
this.name="";
this.address="";
this.age=20;
this.sex="";

}




修饰的范围:方法(普通与构造)、属性、类
类只能用public和默认不写来修饰


2.this\super
this:当前类的对象
super:父类的对象


如下面程序:
public class Student {

public Student(){
System.out.println("执行了第一个");
}
public Student(String n){
System.out.println("执行了第二个");
}
而调用程序只会运行调用第一个
public class Test {
public static void main(String[] args){
Student stu=new Student();只会运行调用第一个程序。
如果想要调用两种方法,使用this,则程序为:
public class Student {

public Student(){
this("");//调用无参方法
System.out.println("执行了第一个");
}
public Student(String n){
System.out.println("执行了第二个");
}
由于this调用的是System.out.println("执行了第二个");
所以程序运行是: 执行了第二个
执行了第一个
当需要注意的是:this只能放在第一行,这是语法规则。
普通方法和属性调用:this.方法名(),this.属性名
 this();
 super.方法名(),super.属性
 super();
如创造一个大学生类:
public class UnStudent extends Student {
public UnStudent(String n){
}
}
此时报错,加入super()来调用父类的构造方法
public class UnStudent extends Student {
public UnStudent(String n){
//调用父类的构造方法
super(n);
}
}


 
注意:1.this()和super()必须出现在第一行
2.方法重写,如果要对父类的方法进行补充,则需要调用super.父类方法名()方法定义




3.final(最终的,最后的)
可以用来修饰:类 public final class Student(此类被修饰为最终,无法再有子类,当前类不能被继承)


方法:public final void study(){}  ,此方法不能被覆盖,即当前方法不能被重写
属性:代表当前属性只能被赋值一次(常量)如:
 public final String name;如果还有构造方法存在时,如:
Public Student(Steing n){
Super();
}
此时会报错,因为属性没赋唯一的一次值,而构造方法的特性是属性重置。
改为public final String name=””;
或者构造赋值name=n;
代表当前属性只能被赋值一次(常量),也就是在生命周期只赋值一次(从类对象创建开始到销毁)
参数/局部变量:代表当前参数在生命周期范围内(从方法执行开始到方法结束)不能重新赋值
Public Student (final String n) {
Super
}
4.static(静态的)
可以用来修饰:方法、属性、静态块
public class Student {
public String name;
public static String address;

public void study(){}
public static void  play(){}
}
测试:
public class Test {
public static void main(String[] args){
Student stu1=new Student();
Student stu2=new Student();

stu1.address="衡阳";
stu2.address="长沙";
Student.address="广州";
System.out.println(stu1.address);
System.out.println(stu2.address);
System.out.println(Student.address);

}
}
运行结果为:广州
广州
广州


注意一点:静态方法中一定不能直接使用非静态属性或者方法
public class Student {
public String name;
public static String address;
static{
System.out.println("执行了静态块");
}
{
System.out.println("执行了代码块");
}
public void study(){
System.out.println("======");
}
public static void  play(){}
}

在System.out.println("执行了静态块");后加this name();将报错。这是加载问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值