Java的学习之路Day07

                                  Day07

          一、输出引用

             -如果我们使用System.out.println();输出一个对象的引用,他默认情况下是输出这个类的全名@地址值,为啥会这样,因为我们使用输出它的引用时,默认调用的是该引用指向的对象的tostring方法,如果我们这个对象没有重写tostring那么他就会默认使用他的父类object的tostring方法,而object中的tostring的方法实现就是打印出类名@地址值,一般情况下我们都需要重写object的tostring方法,来输出这个类中的各个属性值。

              -tostring

                -他就是object类中定义的方法

                    -public String  tostring(){

                    return getclass().getname()+"@"+integer.tohexstring(hashcode());这是java写好的源代码,官方自己的类都已经写好了。   

}

实例:

                    

package com.auto.system;

public class Text01 {
  public  void  student() {
    System.out.println("这是父类"); 
}
  public static void main(String[] args) {
	  Text01 str=new Text01();
	  System.out.println(str);
}
}

      输出的结果为:

        com.auto.system.Text01@15db9742

     想要改变则需要在父类中重写object的tostring方法

       

package com.auto.system;

public class Text01 {
  public  void  student() {
    System.out.println("这是父类"); 
    
}
 
public String toString() {
	return "这是重写后的爸爸";
}
public static void main(String[] args) {
	  Text01 str=new Text01();
	  System.out.println(str);
	  
}
}

  二、“”==“”与“”equals“”的区别

            “”==“”比较的是基本数据类型,比较的是值,而equals比较的是对象的值是否相等,是否是同一对象。

三、hashcode

       java里面有一些数据结构他的排序算法依赖于hashcode的值,为了能够提高这些排序算法的性能,我们最好也重写一下hashcode,重写hashcode的原因也是因为java中规定,如果两个对象的equals比较值为true,那么他们的hashcode值也应该一样,反之为false,值也不一样。如果不重写hashcode,有可能出现equals为true的情况下,但是值确不一样,这样不利于一些数据结构算法的排序。

四、引用数据类型数组

       数组里面的每一个元素都是一个引用类型

五、多态

      一个对象会有多种状态,称之为多态,比如在人在教室里面是学生,在商店里面是顾客等等

六、接口(抽象的)

    我们可以将接口理解为一个特殊的父类,接口和接口是可以多继承的

七、static 关键字

   1-可以修饰成员变量(最终变量的数据赋值,只有一份,以最终赋值数据为准)

      成员变量就可以通过类名.变量名来进行访问,一般单独使用他修饰的不常用,如果修饰变量static 和final关键字一起,这个变量会变成常量。

  2-可以修饰成员方法

      static修饰方法后就会变成静态方法,java语法规定,在静态方法中不能访问非静态的成员(属性和方法)。静态方法可以通过类名.方法名调用。

     

package com.auto.system;

public class Text01 {
	String name;
	int age;
    public static void person() {
    	age=15;//无法访问age,因为age不是静态的
    } 

}

     3、静态代码块

        -静态代码块,执行优先级最高,不管创建多少对象,只执行一。因此静态代码块非常适合写只执行一次的代码,不需要重复加载,比如静态代码块中加载音频,图片等数据量大的文件

      实例:

       

package com.auto.system;

public class Text01 {
	static {
		System.out.println("这是爷爷");
	}
	
    public static void main(String[] args) {
		System.out.println("这是爸爸");
	}
}

     八、final 关键字

         -修饰变量

            修饰变量之后,变量就会变成常量,一般会和static一起使用

         -成员变量

            要么在定义的时候对变量进行初始化,要么在构造器中初始化

         -局部变量

           在第一次使用之前初始化,final修饰变量一旦赋值,就不能重新赋值

        -修饰类

           修饰类,代表不能被继承,string类不能被继承,源代码中string类被final修饰(被太监了),而abstract修饰的抽象类的作用反而是被拿来继承的,两者相反。

       -修饰方法

          修饰方法之后,方法就不能被重写。    

          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值