Java教程

Java学习

本文主要是介绍Java学习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Obeject类是所有Java类的直接或间接超类。在类中未声明自己的权限的,权限均默认为包一级,只能在包内使用,而声名成public的能在整个程序中使用(整个程序可能包含多个包)。

• 两个对象具有相同的类型以及相同的属性值,则称二者相等(equal)。 • 如果两个引用变量指向的是同一个对象,则称这两个引用变量同一(identical)。 • 两个对象同一,则肯定相等。 • 两个对象相等,却不一定同一。 • 怎样判断相等和同一? • 比较运算符“==” 判断的是这两个对象是否同一。 • equals()方法也是判断两个对象是否同一。 • 覆盖equals()方法,修改其功能,可以判断两个对象是否相等。   例子: public class BankAccount { String ownerName; int accountNumber; float balance; } public class Tester4 { public static void main(String[] args) { BankAccount a = new BankAccount("Bob", 123456, 100.00f); BankAccount b = a; if (a.equals(b)) //a、b指向同一对象 System.out.println("YES"); else System.out.println("NO"); } }   判断两个对象是否相等,必须使用(b)。 a.== b.equals()方法,并且必须覆盖equals()方法。   例子:判断两个对象是否相等 public boolean equals(Object x) { //覆盖超类的equals()方法 if (this.getClass() != x.getClass()) //是否属于同一类对象 return false; BankAccount b = (BankAccount) x; return ((this.getOwnerName().equals(b.getOwnerName())) &&(this.getAccountNumber() == b.getAccountNumber()) &&(this.getBalance() == b.getBalance()));//是否相等 }   在对象被垃圾回收器回收之前,系统自动调用对象的finalize()方法。 • 如果要覆盖finalize方法,覆盖方法的最后必须调用super.finalize。   • 通过getClass方法可以获得一个对象所属类的信息。 • 它是final 方法,返回一个Class对象,用来代表对象所属的类。通过Class 对象,可以查询类的各种信息:比如名字、超类、实现接口的名字等。 例: ( 1)void PrintClassName(Object obj) { System.out.println("The Object's class is " + obj.getClass().getName());} ( 2)if (this.getClass() != x.getClass()) //是否属于同一类对象 return false;   抽象类是代表一个抽象概念的类,它规定了整个类族都必须具备的属性和行为。 • 抽象类的特点 • 抽象类只表示抽象的概念,不能使用new方法进行实例化,只能用作超类; • 抽象类可包含常规类能包含的任何成员; • 可以包括非抽象方法,一定要包含有抽象方法(用abstract修饰,只有方法原型,没有方法的具体实现)只有当子类实现了抽象超类中的所有抽象方法,子类才不是抽象类,才能产生实例;如果子类中仍有抽象方法未实现,则子类也只能是抽象类。   抽象方法在超类中规定了子类应该具有的行为,在抽象超类中尚不能实现的方法,可以声明为抽象方法,在子类中去实现它。 • 抽象方法声明的语法形式public abstract <返回值类型> <方法名>(...); • 抽象方法的特点 • 仅有方法原型,而没有方法体; • 抽象方法的具体实现在子类中完成; • 仅可在抽象类声明抽象方法。   例如:各种图形都需要实现绘图方法,可在它们的抽象超类中声明一个draw抽象方法。 abstract class GraphicObject { int x, y; void moveTo(int newX, int newY) { . . . } abstract void draw(); }   例子: public abstract class GraphicObject { public abstract void draw(); } public class Circle extends GraphicObject { public void draw(){ System.out.println("Draw a circle."); } }//只能继承一个抽象类 public class Rectangle extends GraphicObject{ public void draw(){ System.out.println("Draw a rectangle."); } }//只能继承一个抽象类 public class Test { public static void main(String[] args) { Circle c=new Circle(); Rectangle r=new Rectangle(); c.draw(); r.draw();}
这篇关于Java学习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!