在java中一切都是继承关系,一个类如果没有明确指定继承哪个类,则默认情况下是继承自Object类,所以只要是引用数据类型都可以用Object类来进行接收,比如实例接口,数组,一般对象等.
对于一个完整的类来讲,应该覆写Object类中的以下三个方法:
toString() ,对象打印时调用
equals() ,对象比较时调用
hashCode() ,
示例:
class Person{ public String toString(){ // 覆写了toString()方法 return "Hello" ; } }; public class ObjectDemo05{ public static void main(String arg[]){ System.out.println(new Person()) ; } };输出对象时 ,实际上是输出了被覆写的方法 ,也就是说 toString()是表示对象信息的 .
注:在开发中,绝对不要去继承一个已经实现好的类,而要实现接口或者抽象类,其中以接口为优先使用,可以避免单继承的局限.
一个类内部还有一个类,称为内部类,匿名内部类是在抽象类和接口的基础上发展起来的.
匿名内部类使用的场景是一个类只会被使用一次,所以没有必要单独定义为一个类.
一般的开发中匿名内部类使用的比较少,使用比较多的情况是:
java的图形界面
Spring的开发框架
示例:
interface A{ public void fun() ; } class X{ public void fun1(A a){ a.fun() ; } public void fun2(){ this.fun1(new A(){ //new A()即是匿名内部类 public void fun(){ System.out.println("Hello World!!!") ; } }) ; } }; public class NonameDemo02{ public static void main(String args[]){ new X().fun2() ; } };
java中提倡一中概念:一切皆对象,那么会引入一个矛盾点,数据类型分为基本数据类型和引用数据类型,那么基本数据类型是类吗?为了解决这一矛盾,设置了八个包装类,用类的形式表示基本数据类型.
八种包装类分为一下两组:
数值型: Integer, Byte, Short, Float, Double, Long (都是Number的子类)
其他类型: Character, Boolean
在包装类中存在装箱和拆箱的操作:
装箱操作:将基本数据类型转换为包装类.
拆箱操作:将包装类转换为基本数据类型.
示例:
public class FloatDemo01{ public static void main(String args[]){ float i = 10.3f ; Float i2 = new Float(i) ; // 装箱操作 float j = i2.floatValue() ; // 拆箱操作 System.out.println(j * j) ; } };
JDK1.5之前所有数据要手工装箱和拆箱,而且包装类本身不能进行数学运算,1.5之后加入了新特性,如foreach,可变参数,自动装拆箱操作.
public class FloatDemo02{ public static void main(String args[]){ float i = 10.3f ; Float i2 = i ; // 自动装箱操作 float j = i2 ; // 自动拆箱操作 System.out.println(j * j) ; } };
通过包装类可以取得最大值和最小值,如:
public class IntegerDemo03{ public static void main(String args[]){ System.out.println(Integer.MAX_VALUE) ; System.out.println(Integer.MIN_VALUE) ; } };对于包装类而言 ,自动装拆箱是一个重要特点 ,但还有一个重要特点是可以将字符串变为基本数据类型 .
public static int parseInt(String s) throws NumberFormartException
示例:
public class IntegerDemo04{ public static void main(String args[]){ String str = "12sss3" ; // 字符串由数字组成 int i = Integer.parseInt(str) ; // 将字符串变为int型 System.out.println(i++) ; } };当然也有 parseFloat()方法等 .需要注意的是 string中不能有非数字的其他字符 .
20150414
JAVA学习笔记系列
--------------------------------------------
联系方式
--------------------------------------------
Weibo: ARESXIONG
E-Mail: [email protected]
------------------------------------------------