1. 程式人生 > 其它 >使用tinypng對需要上傳Gitee圖床的圖片進行壓縮

使用tinypng對需要上傳Gitee圖床的圖片進行壓縮

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();}