Java对类的理解

学过c语言的可能对结构体和函数有了解,Java的类就是类似结构体的东西,里面有各种函数来规定属性(如果没学过c当我没说)。

直接上代码:

public class Phone{//创建phone类(可以理解为要创建一个手机)
    double price;//声明品牌(手机是有品牌的)
    String name;//声明名字(手机要有个名字)
    public static void main(String[] args){  //创建主函数
        //是执行步骤,比如要一部手机打电话,发消息等
        Phone p1=new Phone();//创建p1将Phone类装到p1里运用
        p1.name="huawei mate50";
        //装到p1里就可以用p1加后缀来给属性上数值了,
        //定义手机名字为华为mate50
        p1.price=6999;//定义价格为6999
        System.out.println("name="+p1.name+",price="+p1.price);
        //打印时给属性赋的值就可以用了
        p1.call();//意思是调用打电话这个模块
        p1.sendMessage("有内鬼,停止交易");//掉用发消息这个模块
        p1.playGame();//调用打游戏这个模块
    }
    public void call(){ //定义一个模块,用来打电话
        System.out.println("手机能拨打电话");
    }
    public void sendMessage(String message){  
         //定义一个模块,用来发消息。
         //要引入message这个变量
        System.out.println("发送信息:"+message);
    }
    public void playGame(){ 
        //打游戏模块,创建好这些模块就可以在主函数main里调用了
        System.out.println("手机可以玩游戏");
    }
}

其中,public class Phone创建了一个类,名为Phone(类名是自己取的)。而playGame,sendMessage,call,main这些小区块称为方法。

那么栈和类也有必要提一下了:

栈:方法内定义的变量,储存在栈中。

堆:new出来的结构,包括对象中的属性(数组实体,对象实体)。

比如:

public static void main(String[] args){

Person p1=new Person();

p1.name="杰克";

p1.age=24;

p1.gender='男';

}

结合概念,p1会在方法mian中归到堆里。p1在栈里的形式为一个地址(如:0x12ab),此地址指向堆。在堆里存放的是方法mian所呈现的对象(如:name=杰克,age=24,gender=男)。那么现在看来,p1就相当于c里的指针,在堆(可以看成书本目录)存放地址指向栈里的实体(书的具体内容)。而栈的汉字意思是存放东西或旅客住宿的地方。堆的意思是堆起来的东西。由此可以加深理解。

那么同样,如果在上述main方法里再new一个p2,那么在栈里会新增一个p2指向堆另腾出的一片空间,里面有新new出来的对象的属性等东西。

——————————————————————

|           栈          |                         堆                        |

|       main(){      |    0x12ab(name,age,gender)       |          

|  p1(0x12ab);    |   0x13ab(name,age,gender)       |

|  p2(0x13ab);    |                                                    |

———————————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅奈德er

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值