Pada minggu pertama saya Saya menyebut topik umum tentang OOP, di mana saya dapat mempelajari sedikit sebanyak tentang topik ini dalam masa yang singkat jumlah masa. Walau bagaimanapun, masih ada topik yang perlu dibincangkan. Dengan mengambil kira bahawa ini hanyalah asas OOP, saya sedang dalam proses memutuskan sama ada Java akan menjadi bahasa yang saya mahu fokuskan 100% , walaupun selepas tamat universiti, saya perlu mengatakan bahawa saya amat menyukai bahagian belakang kerana pengalaman saya dalam ujian, yang mungkin menjadi faktor dalam keputusan saya.
Sepanjang minggu kedua ini Saya tidak mempunyai banyak masa untuk menyemak topik seperti benang, enum atau generik yang saya telah menunggu. Walau bagaimanapun, saya meneruskan projek kecil yang mensimulasikan restoran, di mana tindakan berikut boleh dilakukan:
- Buat produk atau makanan ?
- Buat pesanan berdasarkan produk tersebut dan nyatakan bilangan yang telah digunakan.
- Paparkan pesanan individu selepas menambahkannya.
- Paparkan semua pesanan, dengan pilihan untuk menambah seberapa banyak pesanan mengikut kehendak pengguna.
Saya menciptanya terutamanya untuk merangkumi semua aspek OOP, termasuk pengesahan data dan untuk terus mempraktikkan logik. Saya telah hampir selesai tetapi masih menambah butiran; Saya akan memuat naiknya ke repositori saya setelah ia siap.
Selain itu, saya membincangkan topik OOP lain dan topik lain yang amat berguna.
yang mana satu? Kelas perhubungan, cuba dan tangkap, dan fail.
Saya akan menyebut secara ringkas bagaimana topik ini berguna kepada saya dan cara saya memahami aplikasi praktikalnya.
Kelas Perhubungan
Kelas perhubungan ialah topik yang telah saya ambil sedikit masa untuk faham dan gunakan. Walau bagaimanapun, sebaik sahaja anda memahaminya, ia boleh dilaksanakan dengan mudah. Cara saya paling banyak menggunakan konsep ini ialah hubungan 1-ke-N, yang digunakan untuk memautkan berbilang objek Kelas B ke Kelas A.
Sebagai contoh, jika saya mahu kereta mempunyai berbilang pemilik, saya memerlukan hubungan daripada kelas Pemilik kepada kelas Kereta.
Dalam pembina kelas Kereta, senarai (saya telah menggunakan ArrayList) perlu diluluskan dan senarai ini dibuat berdasarkan objek daripada pembina Pemilik. Oleh itu, pemilik dengan atribut mereka (nama, umur, ID, dsb.) akan dipautkan kepada pembina Kereta, yang akan dapat mencipta objek dengan sifat ini.
Berikut ialah contoh mudah yang menunjukkan cara hubungan 1-dengan-N digunakan: https://pastebin.com/dX6SDWwp
Ini berguna apabila anda perlu "menyambung" objek tertentu dengan orang lain, supaya anda mempunyai hubungan langsung dan ia bukan hanya disambungkan dengan tatasusunan atau kaedah lain yang berbeza.
Cuba dan Tangkap ??
Penggunaan cuba dan tangkap dalam Jawa adalah sesuatu yang saya laksanakan lebih banyak daripada bahasa lain yang saya gunakan. Saya rasa ini kerana IDE saya secara automatik mencadangkan menggunakan try and catch untuk beberapa pengecualian yang memerlukannya.
Topik ini hanyalah sorotan berbanding bahasa lain seperti C , di mana saya menggunakannya sangat sedikit dan lebih suka teknik lain untuk mengelakkan ralat. Walau bagaimanapun, saya secara beransur-ansur membiasakan diri menggunakan try and catch untuk meramal ralat dan mengelakkan ranap sistem mengejut.
Fail - JSON/GSON - Pensirian dan Penyahserikatan ?
Bekerja dengan fail dalam Java mengambil 70% masa pembelajaran saya hujung minggu lalu. Walaupun begitu, saya merasakan terdapat lebih banyak maklumat dan contoh berbanding C , di mana saya turut melaksanakan penggunaan fail dengan matriks untuk mengekalkan data tanpa menulisnya semula.
Ini berguna untuk sistem seperti:
- Keranjang beli-belah
- Pengurusan inventori
- Pesanan, atau mana-mana sistem yang pengekalan data diperlukan.
Dalam kes ini, dengan Java, saya perlu menggunakan objek, jadi ini melibatkan sirialisasi dan penyahserikatan.
Di sini saya perhatikan perbezaan yang besar, kerana cara penulisan banyak bergantung pada jenis data yang anda mahukan. Isu utama saya, yang mengambil masa jam penyelidikan, ialah apabila saya menyimpan aksara ke fail .txt saya, ia muncul dalam format binari semasa membuka fail, tetapi ia dipaparkan sebagai aksara dalam konsol.
Saya dapati dalam talian bahawa terdapat dua cara untuk membaca dan menulis data:
- Melalui bait
- Melalui watak
Kaedah yang saya gunakan adalah berasaskan bait kerana saya menghantar objek secara langsung.
Saya masih belum merasa cukup berpengetahuan untuk berkongsi perbezaan antara pelbagai cara untuk menggunakan subkelas Penulis dan Pembaca, tetapi saya sedang mengusahakan latihan dunia sebenar tempat saya akan menggunakan objek yang disimpan dalam ArrayList dan belajar cara mensiri dan deserialize mereka menggunakan GSON (untuk mengekalkan objek dalam keadaan mereka dalam sistem dalam fail .json) dan kemudian tulis data ini ke fail .txt untuk menyimpannya sebagai rekod dalam cara tersusun.
Penutup
Minggu lepas, saya tidak mencapai kemajuan seperti yang saya inginkan, tetapi bekerja dengan fail mengambil masa berjam-jam penyelidikan, aplikasi , dan pembezaan konsep, menarik bit daripada setiap artikel yang saya semak untuk mencapai hasil akhir yang akan saya uji dalam projek "sebenar" dan kongsi bagaimana ia berlaku.
Adalah penting untuk menyatakan bahawa pengendalian khusus ini dan senario yang saya nyatakan dengan GSON dan .txt ialah sesuatu yang saya perlu lakukan untuk universiti. Walau bagaimanapun, terdapat cara lain, seperti JPA atau pangkalan data, untuk mengendalikan perkara ini. Anda tidak perlu menggunakan GSON dan .txt untuk mengekalkan data dalam sistem.
Tanpa apa-apa lagi untuk ditambahkan, jika sesiapa mempunyai sebarang input pada fail atau topik yang saya nyatakan, jangan ragu untuk mengulas dan berkongsi cadangan anda!
Selamat mengekod! ?
Atas ialah kandungan terperinci Java OOP: Minggu Pengembaraan OOP Diteruskan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

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

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

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

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

Perbezaan antara hashmap dan hashtable terutamanya dicerminkan dalam keselamatan benang, sokongan nilai null dan prestasi. 1. Dari segi keselamatan benang, hashtable adalah benang selamat, dan kaedahnya kebanyakannya kaedah segerak, sementara hashmap tidak melakukan pemprosesan penyegerakan, yang bukan benang-selamat; 2. Dari segi sokongan nilai null, hashmap membolehkan satu kunci null dan nilai null berbilang, manakala hashtable tidak membenarkan kekunci atau nilai null, jika tidak, nullPointerException akan dibuang; 3. Dari segi prestasi, hashmap lebih cekap kerana tidak ada mekanisme penyegerakan, dan Hashtable mempunyai prestasi penguncian yang rendah untuk setiap operasi. Adalah disyorkan untuk menggunakan ConcurrentHashMap sebaliknya.

Java menggunakan kelas pembalut kerana jenis data asas tidak dapat mengambil bahagian secara langsung dalam operasi berorientasikan objek, dan bentuk objek sering diperlukan dalam keperluan sebenar; 1. Kelas koleksi hanya boleh menyimpan objek, seperti senarai menggunakan tinju automatik untuk menyimpan nilai berangka; 2. Generik tidak menyokong jenis asas, dan kelas pembungkusan mesti digunakan sebagai parameter jenis; 3. Kelas pembungkusan boleh mewakili nilai null untuk membezakan data yang tidak tersendiri atau hilang; 4. Kelas pembungkusan menyediakan kaedah praktikal seperti penukaran rentetan untuk memudahkan parsing dan pemprosesan data, jadi dalam senario di mana ciri -ciri ini diperlukan, kelas pembungkusan sangat diperlukan.

Staticmethodsininterfaceswereintroducedinjava8toallowutilityfunctionswithintheintheinterfaceitself.beforjava8, SuchfunctionsRequiredseparateHelpereHelperes, LeadingTodisorgaganizedCode.Now, staticmethodethreeKeybeeMeKeBeReSes, staticmethodeDethreeKeybeeMeKeBeReSes, staticmethodethreeKeybeeMeKeKeBeReSes, staticmethodeDethreeKeybeeMeKeKeBeReKeNey

Penyusun JIT mengoptimumkan kod melalui empat kaedah: kaedah dalam talian, pengesanan tempat panas dan penyusunan, spekulasi jenis dan devirtualisasi, dan penghapusan operasi yang berlebihan. 1. Kaedah sebaris mengurangkan panggilan overhead dan memasukkan kaedah kecil yang sering dipanggil terus ke dalam panggilan; 2. Pengesanan tempat panas dan pelaksanaan kod frekuensi tinggi dan mengoptimumkannya untuk menjimatkan sumber; 3. Jenis spekulasi mengumpul maklumat jenis runtime untuk mencapai panggilan devirtualisasi, meningkatkan kecekapan; 4. Operasi berlebihan menghapuskan pengiraan dan pemeriksaan yang tidak berguna berdasarkan penghapusan data operasi, meningkatkan prestasi.

Blok permulaan contoh digunakan dalam Java untuk menjalankan logik inisialisasi apabila membuat objek, yang dilaksanakan sebelum pembina. Ia sesuai untuk senario di mana beberapa pembina berkongsi kod inisialisasi, permulaan medan kompleks, atau senario permulaan kelas tanpa nama. Tidak seperti blok inisialisasi statik, ia dilaksanakan setiap kali ia ditegaskan, manakala blok permulaan statik hanya dijalankan sekali apabila kelas dimuatkan.

Mod kilang digunakan untuk merangkum logik penciptaan objek, menjadikan kod lebih fleksibel, mudah dikekalkan, dan ditambah longgar. Jawapan teras adalah: dengan mengurus logik penciptaan objek secara berpusat, menyembunyikan butiran pelaksanaan, dan menyokong penciptaan pelbagai objek yang berkaitan. Keterangan khusus adalah seperti berikut: Mod Kilang menyerahkan penciptaan objek ke kelas kilang khas atau kaedah untuk diproses, mengelakkan penggunaan Newclass () secara langsung; Ia sesuai untuk senario di mana pelbagai jenis objek yang berkaitan dicipta, logik penciptaan boleh berubah, dan butiran pelaksanaan perlu disembunyikan; Sebagai contoh, dalam pemproses pembayaran, jalur, paypal dan contoh lain dicipta melalui kilang -kilang; Pelaksanaannya termasuk objek yang dikembalikan oleh kelas kilang berdasarkan parameter input, dan semua objek menyedari antara muka yang sama; Varian biasa termasuk kilang -kilang mudah, kaedah kilang dan kilang abstrak, yang sesuai untuk kerumitan yang berbeza.

Injava, thefinalkeywordpreventsavariable'svaluefrombeingchangedafterassignment, butitsbehaviordiffersforprimitivesandobjectreferences.forprimitiveVariables, finalmakesthevalueconstant, asinfinalintmax_speed = 100;

Terdapat dua jenis penukaran: tersirat dan eksplisit. 1. Penukaran tersirat berlaku secara automatik, seperti menukar int untuk berganda; 2. Penukaran eksplisit memerlukan operasi manual, seperti menggunakan (int) mydouble. Kes di mana penukaran jenis diperlukan termasuk memproses input pengguna, operasi matematik, atau lulus pelbagai jenis nilai antara fungsi. Isu-isu yang perlu diperhatikan adalah: Mengubah nombor terapung ke dalam bilangan bulat akan memotong bahagian pecahan, mengubah jenis besar menjadi jenis kecil boleh menyebabkan kehilangan data, dan beberapa bahasa tidak membenarkan penukaran langsung jenis tertentu. Pemahaman yang betul tentang peraturan penukaran bahasa membantu mengelakkan kesilapan.
