美文网首页
7.25号课程总结

7.25号课程总结

作者: 小石38 | 来源:发表于2017-07-25 15:02 被阅读0次

    1.关键字:package  一般为域名的倒写,特别的,org....一般有特定领域的(教育,。。)

    import 导入包    一般用通配符*可全部倒入下一层包的所有文件,但仅限一层;

    不导入包的写法:such as 

    //java.util.Date.date = new java.util.Date();不知道为好

    java.lang包不用导入

    2.修饰符default,不写默认是default

    方法的重载——作用于方法,与原方法必须同名仅仅是参数上的区别:有两个方面:参数数据类型和参数数据个数

    方法的重写——同上区别,与原方法同名且同参,包括参数数据类型和个数的一致

    3.构造方法:new时调用  不自己定义系统有默认的构造方法,无参的

    Java特性之一——封装性:比如set/get(快捷键Ctrl+s)方法,对外只提供接口

    4.子类的实例化:先调用父类的构造方法,在调用子类(自己的)

    Car car = new mycar()    //父类引用指向子类对象,详情画出内存图

    5.Java为什么只能单继承?怎样实现多继承?

    答:为了使结构不发生混乱,本质上是因为

    从技术的角度来说,是为了降低复杂性。例如,A类中有一个m方法,B类中也有一个m方法。如果C类单独继承A类或者B类时,C类中的m方法要么继承于A类,要么继承于B类。

    而如果多重继承的话,C类的m方法有可能来自A类,又有可能来自B类,就会造成冲突。这样的继承关系,就会增加复杂性,甚至进一步影响多态的灵活性。

    实现多继承,技术上用的是多态

    Java明确定义,一个子类只能有一个直接的父类,不允许有多个。

    即是:a extends b extends c extends D.........

    不允许:a extends b,c,D........

    内部类可以实现多继承,for example:

    classExample1 {publicString name()

    {return"liutao";

    }

    }classExample2 {publicintage()

    {return25;

    }

    }classMainExample

    {privateclasstest1extendsExample1

    {publicString name()

    {returnsuper.name();

    }

    }privateclasstest2extendsExample2

    {publicintage()

    {returnsuper.age();

    }

    }publicString name()

    {returnnewtest1().name();

    }publicintage()

    {returnnewtest2().age();

    }publicstaticvoidmain(String args[])

    {

    MainExample mi=newMainExample();

    System.out.println("姓名:" +mi.name());

    System.out.println("年龄:" +mi.age());

    }

    }

    6.eclipse快捷键

    补全代码:Alt+/

    构造函数:Ctrl+s

    整段注释:Ctrl+shift+/       取消注释:Ctrl+shift+\

    7.基本数据类型的包装类

    int——Integer   char——Character        其他均为首字母大写  Number 子类

    除了Integer和Character定义的名称和对应的基本类型差异大,其他六种都是将首字母大写就可以了。

    Integer,Byte,Float,Double,Short,Long都是Number类的子类。(Number类后面讲);

    Character和Boolean都是Object直接子类;

    8个类都是final修饰的(不可被继承)。



    Java中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 parseInt() 方法或者 valueOf() 方法进行转换.

    例1:

    String str ="123";

    try{

    inta = Integer.parseInt(str);

    }catch(NumberFormatException e) {

    e.printStackTrace();

    }

    例2:

    String str ="123";

    try{

    intb = Integer.valueOf(str).intValue()

    }catch(NumberFormatException e) {

    e.printStackTrace();

    }

    在转换过程中需要注意,因为字符串中可能会出现非数字的情况,所以在转换的时候需要捕捉处理异常



    整型类的享元模式:

    Integer a = 123; Integer b = 123; 相等吗?true

    Integer a = 246; Integer b = 246; 相等吗?false

    why????

    public static Integer valueOf(int i) {

    assert IntegerCache.high >= 127;

    if (i >= IntegerCache.low && i <= IntegerCache.high)

    return IntegerCache.cache[i + (-IntegerCache.low)];

    return new Integer(i);

    }

    ==比较的是地址值 Integer的数据直接赋值,如果在-128到127之间,会直接在缓冲池里获取数据。针对-128到127之间的数据,做了一个数据缓冲池,如果数据时该范围内的每次并不创建新的空间。因为创建了新空间地址值不同所以是false,用equals比较就是true。


    相关文章

      网友评论

          本文标题:7.25号课程总结

          本文链接:https://www.haomeiwen.com/subject/khrwkxtx.html