JAVA基础学习之路(三)类定义及构造方法

2018-06-18 00:39:21来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

类的定义及使用

 

一,类的定义

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();时使用,而普通的方法实例化对象后可以多次调用

 

构造方法的作用:在 类对象实例化的时候设置属性的初始化内容,即构造方法是为属性初始化准备的,一个类中至少保留一个构造方法

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:Logback配置

下一篇:JAVA基础学习之路(二)方法定义,重载,递归