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

歡迎訪問 生活随笔!

生活随笔

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

java

Java基础-初识面向对象编程(Object-Oriented-Programming)

發布時間:2025/3/8 java 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java基础-初识面向对象编程(Object-Oriented-Programming) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

           Java基礎-初識面向對象編程(Object-Oriented-Programming)

                                    作者:尹正杰

版權聲明:原創作品,謝絕轉載!否則將追究法律責任。

?

?

  Java是一門面向對象的程序設計語言。那么什么是面向對象編程呢?本篇博客會帶你了解到如何定義一個類,以及對自定義的類進行實例化操作。讓我們一起目睹Java語言的編程風格吧。

?

一.類和對象的概念

1>.對象的概念

  現實世界中客觀存在的事物就是對象。

2>.類的概念

  把一組對象相同的屬性和相同的行為抽象出來就形成了類。類是對一組對象相同屬性和相同行為的描述。

3>.類和對象的關系

  對象是具體的,類是抽象的,類是對象的模板,對象是類的實例。

?

二. 引用數據類型分類

  提到引用數據類型(類),其實我們對它并不模式,如我們使用過的Scanner類,Random類以及Math類。我們可以把類分為兩種:

    1>.第一種是Java為我們提供好的,如Scanner,Random,Math類等等,這些以及存在的類中包含了很多的方法與屬性,可供我們使用。

    2>.第二種是我們自己創建的類,按照類的定義標準,可以在類中包含多個方法與屬性,來供我們使用,本篇博客以及后面更新的關于面向對象編程的內容基本上都是在介紹第二種的簡單使用。

  注意,引用類型不僅僅只包含類,在Java編程語言中,引用數據類型大致分三種,即數組,類和借口。本篇博客只是介紹其中的類。

?

三.自定義數據類型概述

  我們在Java中,將現實生活中的事物抽象了代碼。這時,我們可以使用自定義的數據類型(類)來描述(映射)現實生活中的事物。

  類,他是引用數據類型,與之前學習的(一維數組,二維數組)所有引用數據類型相同,自定義類也是一種數據類型。只是自定義類型并非Java為我們預先提供好的類型。而是我們自定定義的一種引用數據類型用來描述的一個事物。

?

四.類與對象的定義

1>.定義類

  在Java中,先定義類,再通過類來創建對象。定義類的格式如下:

/* @author :yinzhengjie Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ EMAIL:y1053419035@qq.com */[修飾符] class 類名{//屬性;//行為; }1>.類的修飾符可以有:publicabstract,final等; 2>.class是一個關鍵字,用來定義類; 3>.類名是程序員起的名字; 4>.類體需要使用一對大括號括起來; 5>.在類體中一般描述所有對象共同的屬性和共同的行為; 6>.屬性用變量來保存,行為用方法來表示;

  接下來,我們一起來定義一個Person類如下:

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class Person{ 8 String name; 9 String gender; //性別 10 int height; 11 String personID; //身份證號碼 12 13 public void eat(Person p){ 14 System.out.printf("%s需要吃飯!\n",p.name); 15 } 16 17 public void drink(Person p){ 18 System.out.format("%s需要喝水!\n",p.name); 19 } 20 21 }

2>.創建對象

  如何創建對象呢?其實很簡單,格式為:“類名 對象名 = new 類名();”。我們上面一定定義了一個Person類,那么我們就可以把定義的類拿來創建一個Person對象。

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class PersonDemo{ 8 public static void main(String[] args){ 9 //第一步,創建對象 10 Person p1 = new Person(); 11 /** 12 * 1>.Person是一個類名,在Java中,類是一種引用數據類型,Person是一個數據類型 13 * 2>.P1是對象名,實際上就是Person這個類型定義的變量名; 14 * 3>.給p1這個對象進行賦值時,"new Person()"的返回值賦值給P1變量; 15 * 4>.new 運算符會在堆區中分配一塊存儲空間,把這塊存儲空間的起始地址賦值給變量p1; 16 * 5>.p1 變量中保存的是堆中內存的一個地址(引用) 17 */ 18 19 //第二步,類創建了對象之后,對象就可以通過成員運算符(.)訪問它的屬性和方法 20 p1.name = "尹正杰"; 21 p1.gender = "男"; 22 p1.height = 175; 23 p1.personID = "1100201804085280"; 24 System.out.printf("姓名:%s,年齡:%s,身高:%d,身份證號碼:%s\n",p1.name,p1.gender,p1.height,p1.personID); 25 p1.eat(p1); 26 p1.drink(p1); 27 } 28 }

3>.案例展示

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class Dog{ 8 String nickname; 9 String gender; 10 int age; 11 String varieties; //品種 12 13 public void showInfo(){ 14 System.out.println("以下是狗狗的信息:"); 15 System.out.printf("狗狗的名字是:%s\n",nickname); 16 System.out.printf("狗狗的性別是:%s\n",gender); 17 System.out.printf("狗狗的年齡是:%s\n",age); 18 System.out.printf("狗狗的品種是:%s\n",varieties); 19 } 20 21 public void bark(){ 22 System.out.println("汪汪汪~"); 23 } 24 25 public void eat(){ 26 System.out.println("狗狗喜歡吃肉肉~"); 27 shake(); //在類的一個成員方法中,可以調用另外的成員方法。 28 } 29 30 public void guard(){ 31 System.out.println("狗狗在看門,生人勿進!"); 32 shake(); 33 } 34 35 public void shake(){ 36 System.out.println("狗狗在搖尾巴"); 37 } 38 }

  上面我們定義了一個Dog類,我們接下來我們可以調用一下我們定義的類,代碼如下:

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class DogDemo{ 8 public static void main(String[] args){ 9 Dog myDog = new Dog(); 10 myDog.age = 3; 11 myDog.gender = "公的"; 12 myDog.nickname = "二狗子"; 13 myDog.varieties = "哈士奇"; 14 15 myDog.showInfo(); 16 myDog.guard(); 17 myDog.eat(); 18 } 19 }

?

五.類定義成員變量默認初始化

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class Person{ 8 /** 9 * 在定義類時,可以給成員變量賦初值,類創建了對象,如果沒有給對 10 *象的這個成員變量賦值,這個成員變量的值就是在定義時賦的初始值。 11 */ 12 String name; 13 String gender; //性別 14 int age; 15 String country = "中國"; //定義變量時,可以賦初值。 16 boolean isMarried; //是都已婚 17 18 public void showInfo(){ 19 System.out.printf("姓名:%s\n",name); 20 System.out.printf("性別:%s\n",gender); 21 System.out.printf("年齡:%s\n",age); 22 System.out.printf("國籍:%s\n",country); 23 System.out.printf("婚否:%s\n",isMarried); 24 } 25 }

  通過類定義了對象,如果不給對象的各個變量賦值,對象的各個成員變量會進行默認的初始化,如:

    1>.數值性,數據默認初始化為0;

    2>.字符類型默認初始化為碼值為0的字符;

    3>.布爾類型默認初始化為false;

    4>.引用數據類型默認初始化為null;

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class PersonDemo{ 8 public static void main(String[] args){ 9 Person p1 = new Person(); 10 p1.showInfo(); 11 12 Person p2 = new Person(); 13 p2.country = "美國"; 14 p2.showInfo(); 15 } 16 }

?

六.自定義類的內存圖?

1>.Phone.java文件內容

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class Phone{ 8 /* 9 要求: 10 使用Java中的類,描述生活中的手機這個事物。 11 */ 12 String color; 13 String brand; 14 double size; 15 }

2>.PhoneDemo.java文件內容

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class PhoneDemo{ 8 public static void main(String[] args){ 9 Phone p = new Phone(); 10 11 p.color = "土豪金"; 12 13 p.brand = "IPhone 8 puls"; 14 15 p.size = 5.5; 16 17 System.out.println("顏色:" + p.color+ "品牌: " + p.brand + "尺寸大小:" + p.size ); 18 19 } 20 }

3>.自定義類型內存圖

  別看上面就幾行代碼,但是運行機制我們還是得了解的,下面我簡要畫一下圖,以便記憶:

?

七.類定義使用自定義類型定義成員變量

?  其實,我們可以模擬生產小汽車為例,來說明一下用自定義類型定義成員變量,分為三個文件:Engine.java,Car.java以及CarDemo.java文件。

1>.Engine.java文件內容如下:

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class Engine{ 8 double displacement; //排量 9 int powerSize; //功率 10 11 public void start(){ 12 System.out.println("發動機點火"); 13 } 14 15 public void stop(){ 16 System.out.println("發動機熄火"); 17 } 18 }

2>.Car.java文件內容如下:

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class Car{ 8 String carBrand; //汽車品牌 9 int price; //汽車價格 10 String color; //汽車顏色 11 String motorcycleType; //車型 12 double oilConsumption; //油耗 13 14 Engine carEngine; //發動機 15 /** 16 * 注意,Engine是我們定義的類,也就是說我們可以使用自定義的類型來定義成員變量。 17 */ 18 19 public void start(){ 20 System.out.println("小汽車啟動,實際上是發動機點火!"); 21 carEngine.start(); 22 } 23 24 public void stop(){ 25 System.out.println("小汽車停止,實際上是發動機熄火!"); 26 carEngine.stop(); 27 } 28 29 public void showInfo(){ 30 System.out.println("汽車信息如下:"); 31 System.out.format("汽車品牌:%s\n",carBrand); 32 System.out.format("汽車價格:%s\n",price); 33 System.out.format("汽車顏色:%s\n",color); 34 System.out.format("車型:%s\n",motorcycleType); 35 System.out.format("油耗:%s\n",oilConsumption); 36 //排量和功率是發動機的排量和功率。 37 System.out.format("排量:%s\n",carEngine.displacement); 38 System.out.format("功率:%s\n",carEngine.powerSize); 39 } 40 }

3>.CarDemo.java文件內容如下:

1 /* 2 @author :yinzhengjie 3 Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%80/ 4 EMAIL:y1053419035@qq.com 5 */ 6 7 public class CarDemo{ 8 public static void main(String[] args){ 9 //創建小汽車對象,也可以說是生成了一臺小汽車 10 Car car1 = new Car(); 11 12 car1.carBrand = "Benz"; //相當于貼標簽 13 car1.price = 130; //噴漆 14 car1.color = "red"; //相當于噴漆 15 car1.motorcycleType = "SUV"; //設置類型 16 car1.oilConsumption = 15; //標注油耗 17 18 Engine engine1 = new Engine(); //先生成一臺發動機 19 engine1.displacement = 6.0; 20 engine1.powerSize = 480; 21 car1.carEngine = engine1; //相當于把發動機裝配到小汽車上 22 car1.showInfo(); 23 24 car1.start(); 25 car1.stop(); 26 } 27 }

?

八.匿名對象(Anonymous Object)

1 匿名對象是對象的簡化形式 2 匿名對象兩種使用情況 3   1.對象方法僅進行一次調用時,多次調用不適合 4   2.匿名對象可以作為實際參數進行傳遞 5 使用匿名對象的好處 6   1.簡化寫法,不必定義變量接住對象引用 7   2.對象用完之后就變成垃圾內存,可以被垃圾回收器回收

?

轉載于:https://www.cnblogs.com/yinzhengjie/p/8746919.html

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Java基础-初识面向对象编程(Object-Oriented-Programming)的全部內容,希望文章能夠幫你解決所遇到的問題。

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