java学习笔记(2)

final关键字修饰成员变量:其值不能改变,必须进行初始化;

final修饰方法:能被继承,不能被重写(保护父类特殊数据)

final修饰类:类不能被继承

 

static静态变量:在所有对象里只存在一份;不依赖于对象的加载而依赖于类的加载(静态变量是属于类的);

static方法:类方法:静态方法不能被重写

static final:静态常量:唯一的不可变的只存在一份的数据

 

继承extends

访问修饰符

修饰符当前类同 包(不同包的)子 类其他包
public
protected×   不同包中只能通过子类访问
default× 子类在另一个包里,无法访问default×
private×只有本类可访问××

 

package com.test;
class fruit
{
    static String color = "black";
    String size = "big";
    static String getColor()
    {
        return color;
    }
    String getSize()
    {
        return size;
    }
}

public class apple extends  fruit{
    static String color="white";
    String size="small";
    static String getColor()
    {
        return color;
    }
    String getSize()
    {
        return size;
    }
    public static void main(String[] args)
    {
        fruit f=new apple();
        System.out.println(f.getColor());
        System.out.println(f.getSize());
    }
}

运行结果:

black-------------------->f 在编译期为fruit类型,在运行期为apple类型:在apple继承fruit时,类方法(不能重写)没有被覆盖
small                          

Process finished with exit code 0

apple f=new apple();   则white small

 

 

方法重载overload---》根据参数的类型来执行方法、哪个参数列表相同就执行哪个、执行最兼容的那个

重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载;重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,比父类被重写方法更好访问,不能比父类被重写方法声明更多的异常(里氏代换原则)。重载对返回类型没有特殊的要求。

Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。

byte、short、int、long、float、double、char、boolean

 

引用类型

  • 在Java中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如 Employee、Puppy 等。变量一旦声明后,类型就不能被改变了。
  • 对象、数组都是引用数据类型。
  • 所有引用类型的默认值都是null。
  • 一个引用变量可以用来引用任何与之兼容的类型。
  • 例子:Site site = new Site("Runoob")。

重写override的返回类型:返回类型为基本类型时必须一样;返回类型时引用类型时,可以相同也可以派生自被重写方法的返回类型

abstract抽象:

抽象类:永远不能实例化、 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

继承抽象类就必须实现该抽象类的抽象方法、子类没有实现父类的抽象方法就必须为抽象类

package com.test;
abstract class bike
{
    public String name="abstract var";
    public String getName()
    {
        return name;
    }
    //abstract public String getab();
}

public class abs extends bike{
   /* public String getab()
    {
        System.out.println("realize");
        return getName();
    }*/
    public static void main(String[] args)
    {
        abs a=new abs();
        System.out.println(a.getName());
    }


}

 

枚举类  enum colors{green,yellow}

反射机制

泛型  ArrayList<String> a1=new ArrayList<String>();a1.add(s);String s=a1.get(0);------->集合默认的元素类型为Object--》String

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值