关键字总结

一 可见性修饰关键字
级别:public protected 友好 的 private
1.public 关键字
① public限定的类在一个文件中只能有一个,且类名必须与文件名相同。
如:public class A{}
class B{}
文件名为:A.java
② 修饰方法,表示方法可以被其它包中的类调用
package GG
class A{
public void get()
{ System.out.println()"你好!";
}}
package FF
class B{
A a=new A();
a.get();
}
③ 修饰属性, 可以直接用 对象.属性 格式来访问属性
class A
{ int a;
f()
{}
}
class B
{ A b=new A();
b.a=5;
b.f();
}

④ interface 中的方法和属性默认为 public 型
2. protected 关键字
可以修饰属性和方法,用protected 修饰的方法可以被子类继承,在同一个包中可以访问用protected 修饰的方法和属性,在 不同包中不可以访问。

3.友好的 关键字
① 友好的属性和方法是默认的属性的方法,同一个包中可以访问。
② 如果在源文件中用 import 引入了另一个包中的类,并用该类创建了一个对象,那么该对象也不能访问自己的友好方法和友好属性。

4. private 关键字
private 方法和属性只能由类内部的方法和构造器调用

二 static 关键字
① static 方法称类方法,直接使用 类名.静态方法名() 调用 而非 static 方法的调用必须通过创建该类的对象调用
② static 属性称类属性,可以不创建类的对象直接调用
③ 类的某一个对象的static属性值改变后,类中所有的对象的static属性值都会改变。
public class AA
{ public static void main(String args[])
{ AA.ff();//使用类名直接调用静态方法
AA b=new AA();
b.gg();//用类名创建的对象调用非静态的方法
AA.a=10;
//创建4个AA的对象
for(int i=0;i<4;i++)
{ AA m=new AA();
m.a=i;
}
//所有对象的a值都会是3
System.out.println("a属性的值:"+m.a);
}
//静态方法
public static void ff()
{ System.out.println("静态方法");
System.out.println(s);//错误 , 静态方法中不能操作非静态属性或方法
this();// 错误 , 静态中不能使用 this ,super
}
//非静态方法
public void gg()
{ System.out.println("非静态方法");
}
//静态属性
static int a=0;
//非静态属性
String s="Hello";
}
④ 定义代码块
static A()
//代码块 ,下面两个b不同
{B b=new B();
}
{B b=new B();
}
class B
{}
⑤ 静态方法中不能使用非静态的属性和方法,也不能使用this,super
⑥ 编译时,先装载static 属性和方法,再运行主函数
public class A{
public static void main(String args[])
{System.out.println("***");
}
static
{System.out.println("###");
}
}
//结果为 ###
***

三 this 关键字
① 可以出现在实例方法和构造方法中,但不可以出现在类方法中(来方法可以通过类名直接调用)。
在构造方法中 ,代表使用该构造方法创建的对象;
在实例方法中,代表正在调用该方法的当前对象。

③ 在构造器中调用当前类的构造器,只能进行一次,而且必须在第一行
以下程序错误
public A()
{ System.out.println("###");
this("ddd");
this("ttt");
}

四 super 关键字
① super 指的是当前类 的父类
class A
{ int n;
A()
{ System.out.println("你好!");
}
f()
{ System.out.println("你好吗?");
}
}
class A extends B
{ int n;
f()
{
super(); //调用父类中的构造方法
super.f(); //调用父类中被隐藏的方法
super.n=n; //调用父类中北隐藏的成员变量
}
}

五 package 关键字
① 使用import 引入包:
import 包名;
② 声明格式:package 包名;
③ 包名可以是一个合法标识符,也可以是若干标识符加"."分割而成;
package sun;
package sun.run;

六 final 关键字
① 修饰属性时,该属性的值是常量,不可以改变。
② 修饰方法时,子类继承时,该方法不可以重写。所有常用来保护父类中不允许子类重写但又要标记为public 要外界调用的方法。
③ final类不能被继承,既不能有子类
final class A
{ final int a=4;
public final void ff()
{ a=8;//a被final 修饰,其值不可以被改变
System.out.println("hello");
}
}
class B extends A //final 修饰在类不能被继承
{ public final void ff()
{
System.out.println("hei"); //错误 ,final 修饰的方法,子类不可以重写
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值