java学习笔记2

本节课主要讲了修饰符final,static,abstract和接口的用法。
1.final
final修饰变量时表示该变量为常数,该数在后续程序中不能被修改;当修饰类对象时,对象的成员能被修改,但对象引用不能改,例如:
final Student s= new Student ();
s.age=10;//修改引用的对象的成员变量,这一步对
s=null;//试图修改对象引用,这一步错
用java编程时变量常量名大写如final double PI=3.14159,而对象常量名小写如上面的s。final修饰类时,表示这个类为最终类,不能被继承;final修饰方法时表示在子类中不能声明与该方法同名的方法。

2.static
所有的类都是静态的,而创建的对象是动态的,类分布在静态存储区中,类中的静态变量被加载在该静态存储区,该变量为类类型变量,不是对象类型变量,访问类的静态成员变量时要用类名。举例:out为PrintStream类型对象,在System中out被声明为public static final,此类型变量称为全局静态变量;Math类中的所有成员都是静态的(全是函数),Math类和Systm类都不能创建对象,因为其还是抽象类。
 
3.abstract
抽象类不能实例化,抽象类不一定有抽象函数,但有抽象函数的类一定是抽象类。
抽象类的抽象函数不能实现,函数应这样定义(没有花括号),abstract void a();
在哪种情况下需要使用抽象类?举例:某个类中只有静态函数,不需要实例化,则该类可声明为抽象类。
abstract class A
{
  public void a(){}
}
class B extends A
{
 static public void main(String [] s)
 {
  A a =new B();//前面说过抽象类不能实例化对象,但这里创建的是子类B的对象,可以声明抽象类型的引用,其指向子类的一个对象
 }
}

4.interface
接口与抽象类的区别:接口是行为的抽象类,接口的实现是多重实现,一个类可以实现多个接口,但只能继承一个类;接口的所有成员的类型均是public abstract型,如果一个类继承了一个接口,却没有实现接口里的所有函数,则该类要定义成抽象类。
当只想访问类的局部函数时,可把他抽象成接口里的函数,例如:
interface A
{
 void a();//默认类型是public abstrac,所以没有花括号
}
class B implement A
{
 public void a(){}
 public static void main(String [] s)
               {
  A a=new B();
  a.a();
 }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值