Java 面向对象基础 以及进阶知识 总结
Controlling Access to Members of a Class.
private: 仅仅可以在自己的类中使用
public: 哪里都可以用
protected: package-private 就是在同一个包下都可以使用,并且在别的包下继承他的子类中也可以使用。
no-modifier: package-private 只能在同一个包下使用( 对于同一包下 与protected 相同)。在别的包不行。
Overriding 重写和 Overloadding 重载
Overriding: 是用于子类与父类之间,除了函数体变化外其他的全部不变。且子类overriding的access controller 不能高于父类。
Overloadding: 是对于同类中,方法之间。 参数列表必须改变,返回类型可以改变或不改变。
Polymorphism 多态
大体上可以理解为
ParentClass obj = new ChindClass(); //A
ChildClass obj2 = new ChildClass(); //B
ChildClass obj3 = new ParentClass(); //C 错误例子
交给大家一个窍门,为什么会有这个设定。对于A, 我们声明了ParentClass那么我们就相当于在内存中给ParentClass中的变量和方法分别开了房间, 当我们new 的时候,就比如实际来了人 来了ChildClass, 因为ChildClass中的变量 和 方法数量一定是 大于或者等于ParentClass中的,所以我们之前开的房间都住满了,那么酒店很开心,订了多少住了多少。 对于C中, 我们预定了ChildClass中的变量和方法的房间,但是实际来的人是ParentClass,数量明显小于ChildParent中的人,那么订的住不满,酒店就很生气,给你报了错。
overriding and overloadding 是多态的重要体现形式。
Abstract Class 抽象类
abstract class 能含有或者不含有 abstract函数, abstract 函数必须用 abstract 关键字来修饰。
只要一个类含有一个abstract 函数那么就必须对这个类使用abstract 关键字来修饰。相同的在它的子类中。
Interface 接口
接口就是比abstract 类更极端的东西。它里面的所有方法必须都是 abstract 方法, 不能含有instance field, 对于所有的constant 比如int等必须是 static 和 final的。
implement 它的必须是 实现所有的abstract方法就和abstract 一样了。
Java Advanced Knowledge
Generic Class
很简单通过下面的例子很明显。比如arraylist或者hashmap中都是generic的。
package Generic; //generic class public class GenericMethodTest< A,Z > { //generic variable public A a; public void setA( A a) { this.a = a; } //generic methods public A getA () { return this.a; } public void printArray ( Z[] inArray) { for ( Z temp : inArray) { System.out.println(temp); } } public static < B > void printArray_2 (B[] inArray) { for (B temp : inArray) { System.out.println(temp); } } }
package Implement; import Generic.GenericMethodTest; public class a{ public static void main (String[] args) { GenericMethodTest<Integer,String> gm = new GenericMethodTest<Integer,String>() ; gm.setA(10); String[] ss = {"aaa", "bbb", "ccc"}; Double [] bb = {1.0, 2.0, 3.0}; gm.printArray(ss); gm.printArray_2(ss); gm.printArray_2(bb); } }
Serialize 串行化
串行化简单来讲就是转变存在的 实例化的对象 转化成 byte数组的 一种技术或者过程。它有很多好处,请看。
http://stackoverflow.com/questions/2232759/what-is-the-purpose-of-serialization-in-java
简单的串行化,可以根据下面的代码来学习下。
注意: 对于一些我们不想串行化的 区域 我们可以使用关键字 transient 来修饰。
package Serialize; import java.io.*; public class Employee implements Serializable{ public String name; public String address; public transient int SSN; public int number; public void mailCheck (){ System.out.println("Mailing a check to "+ name + " " + address); } }
package Serialize; import java.io.*; public class SerializeDemo { public static void main (String[] args) { Employee e = new Employee(); e.name = "Reyan df"; e.address = "New York, ManhaThan"; e.SSN = 1234433224; e.number = 101; try { FileOutputStream fileOut = new FileOutputStream ("/Users/huazhe/Desktop/demo.ser"); ObjectOutputStream out = new ObjectOutputStream (fileOut); out.writeObject(e); out.close(); fileOut.close(); System.out.println("Serialization done..."); } catch (IOException i){ System.out.println(i); } } }
package Serialize; import java.io.*; public class DeserializaDemo { public static void main (String[] args) { Employee e = null; try { FileInputStream fileIn = new FileInputStream("/Users/huazhe/Desktop/demo.ser"); ObjectInputStream in = new ObjectInputStream (fileIn); e = (Employee) in.readObject(); in.close(); fileIn.close(); } catch (IOException i) { System.out.println(i); } catch (ClassNotFoundException c) { System.out.println(c); } System.out.println("Name: " + e.name); System.out.println("Address: " + e.address); System.out.println("SSN: " + e.SSN); System.out.println("Number: " + e.number); } }
Atas ialah kandungan terperinci Java 面向对象基础 以及进阶知识 总结. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Panduan Nombor Sempurna di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor Perfect dalam Java?, contoh dengan pelaksanaan kod.

Panduan untuk Weka di Jawa. Di sini kita membincangkan Pengenalan, cara menggunakan weka java, jenis platform, dan kelebihan dengan contoh.

Panduan untuk Nombor Smith di Jawa. Di sini kita membincangkan Definisi, Bagaimana untuk menyemak nombor smith di Jawa? contoh dengan pelaksanaan kod.

Dalam artikel ini, kami telah menyimpan Soalan Temuduga Spring Java yang paling banyak ditanya dengan jawapan terperinci mereka. Supaya anda boleh memecahkan temuduga.

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

Panduan untuk TimeStamp to Date di Java. Di sini kita juga membincangkan pengenalan dan cara menukar cap waktu kepada tarikh dalam java bersama-sama dengan contoh.

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

Spring Boot memudahkan penciptaan aplikasi Java yang mantap, berskala, dan siap pengeluaran, merevolusi pembangunan Java. Pendekatan "Konvensyen Lebih Konfigurasi", yang wujud pada ekosistem musim bunga, meminimumkan persediaan manual, Allo
