Semuanya adalah objek perkara, entiti tertentu , contoh khusus, kategori produk khusus di bawah templat:"/> Semuanya adalah objek perkara, entiti tertentu , contoh khusus, kategori produk khusus di bawah templat:">

Rumah >Java >javaTutorial >Apakah ciri dan penggunaan berorientasikan objek Java

Apakah ciri dan penggunaan berorientasikan objek Java

PHPz
PHPzke hadapan
2023-05-12 17:58:061174semak imbas

Perbezaan antara berorientasikan proses dan berorientasikan objek

Berorientasikan proses: Apabila acara itu agak mudah, berorientasikan proses digunakan untuk memfokuskan pada langkah dan proses tertentu acara tersebut, dan pada tingkah laku tertentu dalam proses Fungsi adalah unit terkecil, pertimbangkan bagaimana untuk melakukannya.

Berorientasikan objek: fokus pada mencari "peserta", merangkum fungsi ke dalam objek, menekankan objek dengan fungsi, mengambil kelas/objek sebagai unit terkecil dan mempertimbangkan siapa yang akan melakukannya.

Kes: Xiao Ming mengambil sesuatu dari peti sejuk

Berorientasikan proses:

Apakah ciri dan penggunaan berorientasikan objek Java

Berorientasikan objek:

Apakah ciri dan penggunaan berorientasikan objek Java

Berorientasikan prosedur—> Berorientasikan objek, sebenarnya, ia adalah peralihan antara pelaksana dan komander

Hubungan antara kelas dan objek

Semuanya adalah objek

Objek: perkara khusus, entiti khusus, kejadian khusus, produk khusus di bawah templat

Kelas: ekstrak bahagian imej ke atas daripada objek, terbitkan bahagian itu dan bentuk kelas. Kelas adalah abstrak Ya, ia adalah templat Secara amnya, apabila menulis kod, anda menulis kelas terlebih dahulu, dan kemudian mencipta objek yang sepadan berdasarkan kelas

Kelas ialah abstraksi objek, dan objek ialah instantiasi kelas

Apakah ciri dan penggunaan berorientasikan objek Java

Penciptaan kelas dan objek

Penciptaan kelas

Atribut (ahli bidang pembolehubah)

Atribut digunakan untuk mentakrifkan kelas ini atau kelas ini Data atau ciri statik yang terkandung dalam objek. Skop atribut ialah keseluruhan badan kelas.

Format definisi atribut:

[pengubah suai] nama atribut jenis = [nilai lalai];

2 Kaedah digunakan untuk menentukan ciri tingkah laku dan pelaksanaan fungsi kelas atau kejadian kelas. Kaedah adalah abstraksi ciri-ciri tingkah laku kelas dan objek. Kaedah sangat serupa dengan fungsi dalam pengaturcaraan berorientasikan prosedur. Dalam orientasi proses, fungsi adalah unit paling asas, dan keseluruhan program terdiri daripada panggilan fungsi. Dalam berorientasikan objek, unit asas keseluruhan program ialah kelas, dan kaedah adalah bawahan kepada kelas dan objek.

Format definisi kaedah:

[Pengubah suai] Nama kaedah jenis pengembalian kaedah (senarai parameter formal) {

//Pernyataan Java

}

Kami mengambil ciptaan kelas wira King of Glory di atas sebagai contoh:
//创建英雄类
public class Hero {
    //属性
    String Name;//英雄姓名
    int Survive;//生存能力
    int Attack;//攻击伤害
    int Skill;//技能效果
    int Difficulty;//上手难度

    //技能
    public void Kill(int number){
        //根据输入的数字释放几技能
        System.out.println(Name+"释放"+number+"技能!!!");
    }
    //输出该英雄的属性
    public void print(){
        System.out.println("英雄:"+Name);
        System.out.println("生存能力:"+Survive);
        System.out.println("攻击伤害:"+Attack);
        System.out.println("技能效果:"+Skill);
        System.out.println("上手难度:"+Difficulty);
    }

}

Penciptaan objek

Seterusnya kami mencipta objek untuk kelas yang kami buat

public class TestCode01 {
    //main方法,程序的入口
    public static void main(String[] args) {
        //创建一个对象(英雄)-->马克波罗
        Hero make = new Hero();
        make.Name = "马克波罗";
        make.Survive = 4;
        make.Attack = 6;
        make.Skill = 6;
        make.Difficulty = 5;
        //再创建一个英雄-->澜
        Hero lan = new Hero();
        lan.Name = "澜";
        lan.Survive = 3;
        lan.Attack = 5;
        lan.Skill = 4;
        lan.Difficulty = 6;
        lan.Kill(1);
        //输出两个英雄的属性
        make.print();
        System.out.println("-------------");
        lan.print();
        //释放技能
        make.Kill(3);
        System.out.println("-------------");
        lan.Kill(2);
    }
}

Keputusan: Setiap wira mempunyai atribut yang sama, dan setiap atribut mempunyai nilai yang berbeza Melalui kelas, kita boleh mencipta banyak objek, dan setiap objek mempunyai nilai atribut yang berbeza.

Contohnya: Terdapat lebih daripada seratus wira dalam Raja Segala Raja, masing-masing mempunyai ciri yang berbeza.

Apakah ciri dan penggunaan berorientasikan objek JavaProses mencipta objek:

(1) Apabila menemui kelas buat kali pertama, kelas mesti dimuatkan, dan hanya dimuatkan sekali .

(2) Cipta objek dan buka ruang dalam timbunan

(3) Mulakan objek, dan tugasan atribut adalah semua nilai awal lalai.

(4) Kata kunci baharu memanggil pembina, melaksanakan kaedah pembinaan dan menetapkan semula sifat dalam objek

Pembina

semuanya baharu, Kata kunci baharu ialah sebenarnya memanggil kaedah, yang dipanggil pembina (pembina)

Apabila memanggil pembina, jika tiada pembina ditulis dalam kelas anda, sistem akan memberikan pembina kepada anda secara lalai Pembina (pembina kosong)

Format kaedah pembina:

[pengubah suai] Nama pembina () {

}

Perbezaan antara pembina dan kaedah:

    Tiada nilai pulangan kaedah
  • Tidak boleh ada pernyataan pulangan di dalam badan kaedah
  • Nama pembina adalah sangat istimewa dan mesti konsisten dengan nama kelas
  • Peranan pembina: bukan untuk mencipta objek, kerana sebelum pembina dipanggil, objek Ia telah dicipta dan sifat mempunyai nilai dimulakan lalai.

Tujuan memanggil pembina adalah untuk menetapkan nilai kepada sifat.

Nota: Kami biasanya tidak memulakan dalam pembina kosong, kerana sifat setiap objek akan sama.

Contoh berikut:

class Hero{
    //属性
    String Name;//英雄姓名
    int Survive;//生存能力
    int Attack;//攻击伤害
    int Skill;//技能效果
    int Difficulty;//上手难度

    public Hero(){
        Survive=4;
        Attack=5;
        Skill=6;
        Difficulty=7;
    }
    public void print(){
        System.out.println("英雄:"+Name);
        System.out.println("生存能力:"+Survive);
        System.out.println("攻击伤害:"+Attack);
        System.out.println("技能效果:"+Skill);
        System.out.println("上手难度:"+Difficulty);
    }
}
public class TestCode01 {
    public static void main(String[] args) {
        //创建两个英雄对象
        Hero make = new Hero();
        make.Name="马克";
        Hero lan=new Hero();
        lan.Name="澜";
        //输出两个属性
        make.print();
        lan.print();
    }
}

Oleh kerana kami memberikan nilai dalam pembina, sifat akan sama apabila kami mencipta objek

Apakah ciri dan penggunaan berorientasikan objek Java Sebenarnya, kita hanya perlu memastikan kewujudan pembina kosong Tidak perlu menulis kandungan di dalam Jika kita ingin menggunakan pembina untuk menetapkan nilai, kita mesti membebankan pembina

Pembina. terlebih muatan

Secara amnya, kewujudan pembina kosong dijamin Dalam pembina kosong, operasi penetapan atribut secara amnya tidak dilakukan

Apakah ciri dan penggunaan berorientasikan objek JavaSecara amnya, kami akan terlebih beban. pembina. Dalam pembina yang terlebih beban Laksanakan operasi penetapan atribut

Apakah ciri dan penggunaan berorientasikan objek Java

在重载构造器以后,假如空构造器忘写了,系统也不会给你分配默认的空构造器了,那么你要调用的话就会出错了。所以我们重载构造器时,一般要保留默认构造器

Apakah ciri dan penggunaan berorientasikan objek Java

当形参名字和属性名字重名的时候,会出现就近原则:在要表示对象的属性前加上this.来修饰 ,因为this代表的就是你创建的那个对象

Apakah ciri dan penggunaan berorientasikan objek Java

this的使用

this就是指当前的对象

this可以修饰属性

当属性名字和形参发生重名的时候,或者 属性名字 和局部变量重名的时候,都会发生就近原则,所以如果我要是直接使用变量名字的话就指的是离的近的那个形参或者局部变量,这时候如果我想要表示属性的话,在前面要加上:this.修饰(如果不发生重名问题的话,实际上你要是访问属性也可以省略this.)

Apakah ciri dan penggunaan berorientasikan objek Java

this修饰方法

在同一个类中,方法可以互相调用,this.可以省略不写。

Apakah ciri dan penggunaan berorientasikan objek Java

this可以修饰构造器

同一个类中的构造器可以相互用this调用,注意:this修饰构造器必须放在第一行

Apakah ciri dan penggunaan berorientasikan objek Java

static修饰

static可以修饰:属性、方法、代码块、内部类

static修饰属性

在类加载的时候,会将静态内容也加载到方法区的静态域中,静态的内容先于对象存在,并且这个静态内容被所有该类的对象共享。

  • 在类加载的时候一起加载入方法区中的静态域中

  • 先于对象存在

  • 访问方式: 对象名.属性名 类名.属性名(推荐)

Apakah ciri dan penggunaan berorientasikan objek Java

static修饰属性的应用场景:某些特定的数据想要在内存中共享,只有一块 -->这个情况下,就可以用static修饰的属性。

static修饰方法:

  • static和public都是修饰符,并列的没有先后顺序,先写谁后写谁都行

  • 在静态方法中不能使用this关键字

  • 在静态方法中不能访问非静态的方法

  • 在静态方法中不能访问非静态的属性

  • 静态的方法可以用 对象名.方法名去调用 也可以 用 类名.方法名 (推荐)

  • 在同一个类中可以直接调用静态方法

Apakah ciri dan penggunaan berorientasikan objek Java

代码块

代码块的分类: 普通块、构造块、静态块、同步块(多线程)

代码块执行顺序: 最先执行静态块–>再执行构造块,(不常用)–>再执行构造器–>再执行方法中的普通块

public class Test {
    //属性
    int a;
    static int sa;
    //方法
    public void a(){
        System.out.println("-----a");
        {
            //普通块限制了局部变量的作用范围
            System.out.println("这是普通块");
            System.out.println("----000000");
            int num = 10;
            System.out.println(num);
        }

    }
    public static void b(){
        System.out.println("------b");
    }
    //构造块
    {
        System.out.println("------这是构造块");
    }
    //静态块
    static{
        System.out.println("-----这是静态块");
        //在静态块中只能方法:静态属性,静态方法
        System.out.println(sa);
        b();
    }
    //构造器
    public Test(){
        System.out.println("这是空构造器");
    }
    public Test(int a){
        this.a = a;
    }
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) {
        Test t = new Test();
        t.a();
        Test t2 = new Test();
        t2.a();
    }
}

包(import)

包的作用: 为了解决重名的作用,解决权限问题

包名的定义:

  • 名字全部小写

  • 中间用.隔开

  • 一般都是公司域名倒着写:com.jd 、com.taobao

  • 加上模块名字 :com.taobao.login

  • 不能使用系统中的关键字:null

  • 包声明的位置一般都在非注释代码的第一行

Apakah ciri dan penggunaan berorientasikan objek Java

导包:

(1)使用不同包下的类要需要导包, 例如:import java.util.Date;

(2)在导包以后,还想用其他包下同名的类,就必须要手动自己写所在的包。

(3)同一个包下的类想使用不需要导包,可以直接使用。

(4)在java.lang包下的类,可以直接使用无需导包

(5)可以直接导入*

静态导入:

//静态导入:
import static java.lang.Math.*;
//导入:java.lang下的Math类中的所有静态的内容

public class Test {
    //这是一个main方法,是程序的入口:
    public static void main(String[] args) {
        System.out.println(random());
        System.out.println(PI);
        System.out.println(round(5.6));
    }
    //在静态导入后,同一个类中有相同的方法的时候,会优先走自己定义的方法。
    public static int round(double a){
        return 1000;
    }
}

Atas ialah kandungan terperinci Apakah ciri dan penggunaan berorientasikan objek Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam