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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法

發布時間:2025/4/16 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

面向過程和面向對象

  • 解決簡單問題可以使用面向過程
  • 解決復雜問題:宏觀上使用面向對象把握,微觀處理上仍然是面向過程。
  • 面向對象具有三大特征:封裝性、繼承性和多態性,而面向過程沒有繼承性和多態性,并且面向過程的封裝只是封裝功能,而面向對象可以封裝數據和功能。所以面向對象優勢更明顯。

屬性(field,或者叫成員變量)

  • 屬性用于定義該類或該類對象包含的數據或者說靜態特征
  • 屬性作用范圍是整個類體


面向對象的內存分析

  • Java虛擬機的內存可以分為三個區域:棧stack、堆heap、方法區method area
  • 棧的特點如下:

? ? ? ? 1. 棧描述的是方法執行的內存模型。每個方法被調用都會創建一個棧幀(存儲局部變量、操作數、方法出口等)

? ? ? ? 2. JVM為每個線程創建一個棧,用于存放該線程執行方法的信息(實際參數、局部變量等)

  ?3. 棧屬于線程私有,不能實現線程間的共享!

? ? ? ? 5. 棧是由系統自動分配,速度快!棧是一個連續的內存空間!

  • 堆的特點如下:

  1. 堆用于存儲創建好的對象和數組(數組也是對象)

  2. JVM只有一個堆,被所有線程共享

  3. 堆是一個不連續的內存空間,分配靈活,速度慢!

  • 方法區(又叫靜態區)特點如下:

  1. JVM只有一個方法區,被所有線程共享!

  2. 方法區實際也是堆,只是用于存儲類、常量相關的信息!

  3. 用來存放程序中永遠是不變或唯一的內容。(類信息【Class對象】、靜態變量、靜態方法、字符串常量等)


構造方法

? ? ? ? ?構造器也叫構造方法(constructor),用于對象的初始化。構造器是一個創建對象時被自動調用的特殊方法,目的是對象的初始化。

? ? ? ?1. 通過new關鍵字調用!!

  2. 構造器雖然有返回值,但是不能定義返回值類型(返回值的類型肯定是本類),不能在構造器里使用return返回某個值。

  3. 如果我們沒有定義構造器,則編譯器會自動定義一個無參的構造函數。如果已定義則編譯器不會自動添加。

案例:

? ? ? ?1. 定義一個“點”(Point)類用來表示二維空間中的點(有兩個坐標)。要求如下:

  (1) 可以生成具有特定坐標的點對象。

  (2) 提供可以設置坐標的方法。

  (3)提供可以計算該“點”距另外一點距離的方法。

class Point{double x,y;public Point(double _x,double _y) {x=_x;y=_y;}public double getDistance(Point p) {return Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));} } public class TestConstructor {public static void main(String[] args) {Point p=new Point(3.0,4.0);Point origin=new Point(0.0,0.0);System.out.println(p.getDistance(origin));} }

運行結果:5.0

總結

以上是生活随笔為你收集整理的java知识点7——面向过程和面向对象、面向对象的内存分析、构造方法的全部內容,希望文章能夠幫你解決所遇到的問題。

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