日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java学习笔记_类和对象

發布時間:2023/12/15 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java学习笔记_类和对象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

·類:是一組相關屬性和行為的集合,可以看成是一類事務的模板,使用事物的屬性特征和行為特征來描述該類事物。
·屬性:該事物的狀態信息
·行為:就是該事物能夠做什么

·對象:一類事物的具體體現,對象是類的一個實例,必然具備該類事物的屬性和行為。

成員變量:
String name;
int age;

成員方法:
public void eat( ){ }
public void sleep( ) { }

注意事項:

  • 成員變量直接定義在類當中,在方法外面
  • 成員方法不要寫static關鍵字
  • public class Student {
    String name;
    int age;

    public void eat() { System.out.println(“吃飯”) }public void sleep() { System.out.println(“睡覺”) }public void study() { System.out.println(“學習”) }

    }

    通常情況下,一個類并不能直接使用,需要根據類創建一個對象,才能使用

  • 導包:也就是指出需要使用的類,在什么位置
    import 包名稱.類名稱
    對于和當前類屬于同一個包的情況,可以省略導包語句不寫

  • 創建,格式
    類名稱 對象名 = new 類名稱();
    Student stu = new Student();

  • 使用
    使用成員變量:對象名.成員變量名
    使用成員方法:對象名.成員方法名(參數)

  • public class Demo{public static void main(String[] args){Student stu = new Student();System.out.println(stu.name);System.out.println(stu.age);stu.name = “zhangsan”stu.age = 18;System.out.println(stu.name);System.out.println(stu.age);stu.eat();stu.sleep();stu.study();} } public class Phone{String brand;double price;String color;public void call(String who){System.out.println(“給” + who + “打電話”)}public void sendMessage(){System.out.println(“群發短信”)} }public static void main(String[] args){Phone one = new Phone();System.out.println(one.brand);System.out.println(one.price);System.out.println(one.color);one.brand = “蘋果”;one.price = 8388.0;one.color = “黑色”;System.out.println(one.brand);System.out.println(one.price);System.out.println(one.color);one.call(who:”喬布斯”);one.sendMessage();}

    局部變量和成員變量

  • 定義的位置不一樣
    局部變量:在方法內部
    成員變量:在方法外部,直接寫在類當中

  • 作用范圍不一樣
    局部變量:只有方法當中才可以使用,出了方法就不能再用
    成員變量:整個類全部可以通用

  • 默認值不一樣
    局部變量:沒有默認值,如果想要使用,必須手動進行賦值
    成員變量:如果沒有賦值,會有默認值,規則和數組一樣

  • 內存的位置不一樣
    局部變量:位于棧內存
    成員變量:位于堆內存

  • 生命周期不一樣
    局部變量:隨著方法進棧而誕生,隨著方法出棧而消失
    成員變量:隨著對象創建而誕生,隨著對象被垃圾回收而消失

  • public class Demo{String name;//成員變量public void methodA(){int num = 20;//局部變量System.out.println(num);System.out.println(name);}public void methodB(int param){//方法的參數就是局部變量//參數在方法調用的時候,必然會被賦值System.out.println(param);int age;//局部變量System.out.println(age);//沒賦值不能用System.out.println(num);//錯誤寫法System.out.println(name);} }

    面向對象的三大特征:封裝、繼承、多態

    封裝性在Java中的體現:

  • 方法就是一種封裝
  • 關鍵字private也是一種封裝
  • 封裝就是將一些信息隱藏起來,對于外界不可見

    public class Demo{public static void main(String[] args){int[] array = {5,15,25,20,100};int max = getMax(array);System.out.println(“最大值:” + max)}//給我一個數組,我還給你一個最大值public static int getMax(int[] array){int max = array[0];for(int i = 1;i < array.length; i++){if(array[i] > max){max = array[i];}}return max;} }

    問題描述:定義Person的年齡時,無法阻止不合理的數值被設置進來
    解決方案:用private關鍵字將需要保護的成員變量進行修飾。

    一旦使用了private進行修飾,那么本類當中仍然可以隨意訪問,
    但是,超出了本類范圍之外就不能再直接訪問了。

    間接訪問private成員變量,就是定義一對Getter/Setter方法

    必須是setXxx或者getXxx命名規則
    對于Getter來說,不能有參數,返回值類型和成員變量對應
    對于Setter來說,不能有返回值,參數類型和成員變量對應

    對于基本類型中的boolean值,Getter方法一定要寫成isXxx的形式,
    而setXxx規則不變。

    public class Person{String name;private int age;public void show(){System.out.println(“我叫:” + name + “,年齡:” + age);}//這個成員方法,專門向age設置數據public void setAge(int num){if(num < 100 && num >= 0){age = num;}else{System.out.println(“數據不合理!”)}}//這個成員方法,專門私有獲取age的數據public int getAge(){return age;} } public boolean isMale(){return male; }

    當方法的局部變量和類的成員變量重名的時候,根據就近原則,優先使用局部變量。
    如果需要訪問本類當中的成員變量,需要使用格式:
    this.成員變量

    ”通過誰調用的方法,誰就是this”

    public class Person{String name;//參數name是對方的名字//成員變量name是自己的名字public void sayHello(String name){System.out.println(name +,你好,我是” + this.name);} }

    構造方法是專門用來創建對象的方法,當我們通過關鍵字new來創建對象時,其實就是在調用構造方法。
    格式:
    public 類名稱(參數類型 參數名稱){
    方法體
    }

    注意事項:

  • 構造方法的名稱必須和所在類名稱完全一樣,就連大小寫也要一樣
  • 構造方法不要寫返回值類型,連void都不寫
  • 構造方法不能return一個具體的返回值
  • 如果沒有編寫任何構造方法,那么編譯器將會默認贈送一個構造方法,沒有參數、方法體什么事情都不做
  • 一旦編寫了至少一個構造方法,那么編譯器將不再贈送
  • 構造方法也是可以進行重載的(方法名稱相同,參數列表不同)
  • public class Student{public Student(){System.out.println(“構造方法執行”)}public Student(String name,int age){this.name = name;this.age = age;} }

    總結

    以上是生活随笔為你收集整理的Java学习笔记_类和对象的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。