JAVA基础学习之路(三)类定义及构造方法
類的定義及使用
?
一,類的定義
class Book {//定義一個類int price;//定義一個屬性int num;public static int getMonney(int price, int num) {//定義一個方法return price*num;} }public class test2 {public static void main(String args[]) {Book monney = new Book();//聲明并實例化對象monney.price = 10;monney.num = 20;System.out.println(monney.getMonney(10,20));} }?
二,內存分析
類是引用類型,創建時會申請分配內存
堆內存:保存每一個對象的屬性,需要new關鍵字才可以創建
棧內存:保存一塊堆內存的地址
1,當使用Book bk = new Book();時,內存情況如下:
?
為屬性賦值之后,如下
?
2.分步創建對象,實例化
Book monney = null;
monney = new Book();
任何情況下,只要看見了關鍵詞new,就表示開辟堆內存,只要開辟了堆內存,一旦堆內存空間開辟了,里面就會有對象中所有屬性,所有屬性的內容為默認值
?
?
實例化對象其實就是開辟堆內存
?
三,類的封裝
class Book {private int price;private int num;public void setPrice(int p) {price = p;}public void setNum(int n) {num = n;}public int getPrice() {return price;}public int getNum() {return num;}public int getMonney(int price, int num) {return price*num;} }public class test2 {public static void main(String args[]) {Book monney = new Book();monney.setPrice(10);monney.setNum(20);System.out.println(monney.getMonney(10,20)); } }在構造類的過程中,屬性盡量都寫成private,這樣,屬性就對外部隱藏。通過setter方法設置屬性值,getter方法獲取屬性值。外部若要訪問類的屬性,只有通過setter方法。
?
四,構造方法
類名? 對象名 = new 類名();
1.類名:類的名字,決定對象的屬性和方法
2.對象名:對象的唯一標識
3.new:開辟堆內存,沒有new則無法實例化對象
4.類名()? 實際上是調用了一個和類名相同的方法,即構造方法
我們從來沒有定義過構造方法,之所以可以使用,是java在編譯時,為我們添加了一個名稱與類相同,無參數,無返回值的方法
構造方法只在實例化新對象時使用一次,就是在book = new Book();時使用,而普通的方法實例化對象后可以多次調用
?
構造方法的作用:在 類對象實例化的時候設置屬性的初始化內容,即構造方法是為屬性初始化準備的,一個類中至少保留一個構造方法
?
轉載于:https://www.cnblogs.com/xhnxhnu/p/9113315.html
總結
以上是生活随笔為你收集整理的JAVA基础学习之路(三)类定义及构造方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学基础(9)--MATLAB 数据拟合
- 下一篇: java gui 连接mysql数据库