取消

源码库积分购买,一块钱一积分。

扫码支持

打开微信扫一扫,2两分钟内即可到账(注意:购买积分留言备注自己注册的邮箱),如有疑问请联系站长

打赏

取消

作者很不错,打赏一下

扫码支持
你的打赏,就是作者分享代码最大的动力[嘻嘻]

打开微信扫一扫,即可进行扫码打赏支持

java入门【八】类与对象

  发布于
积分: 收藏
联系作者 :点击QQ图标联系作者寻求帮助,得到帮助解决问题后,记得打赏支持一下作者的辛苦劳动
本站长承接毕业设计、课程设计以及技术分享,有需要的加站长QQ咨询:2835777178

类 共性的一个集合 对象 某一个性的产物 对象也是类的一个实例
class组成
 Field (成员,变量 ,属性)变量的集合用来描述类 Method(方法)由对象调用
定义对象
声明并实例化对象
类名称 对象名称 = new 类名称();
分布完成
1.声明对象 类名称 对象名称 = null;
2.实例化对象 对象名称 = new 类名称();
关于new:我们引用数据类型需要开辟新的内存
//定义类 class Book{ String title;//Field double price;//Field public void getInfo(){ System.out.println("图书名称:"+title+"图书价格:"+price); }//Method } public class HelloWorld{ public static void main(String args[]){ Book bk = new Book(); bk.title = "小王子"; bk.price = 18.8; bk.getInfo(); } }

下面我们来看java与c的一个区别就是会默认赋予变量初值
//定义类 class Book{ String title;//Field double price;//Field public void getInfo(){ System.out.println("图书名称:"+title+"图书价格:"+price); }//Method } public class HelloWorld{ public static void main(String args[]){ Book bk = new Book(); //bk.title = "小王子"; //bk.price = 18.8; bk.getInfo(); } }

java对于内存的操作

如果我们使用分布去定义类
//定义类 class Book{ String title;//Field double price;//Field public void getInfo(){ System.out.println("图书名称:"+title+"图书价格:"+price); }//Method } public class HelloWorld{ public static void main(String args[]){ Book bk = null;//在栈上声明 bk = new Book();//在堆上开辟内存 bk.title = "小王子"; bk.price = 18.8; bk.getInfo(); } }
假如我们不去堆上开辟内存

假如不去声明

引用传递
//定义类 class Book{ String title;//Field double price;//Field public void getInfo(){ System.out.println("图书名称:"+title+"图书价格:"+price); }//Method } public class HelloWorld{ public static void main(String args[]){ Book bk1 = null;//在栈上声明 Book bk2 = null; bk1 = new Book();//在堆上开辟内存 bk1.title = "小王子"; bk1.price = 18.8; bk2 = bk1; bk2.price = 16; bk1.getInfo(); } }


说明多个栈内存可以同时操作一个堆内存,但是一个栈内存只能保存一个堆内存的地址
//定义类 class Book{ String title;//Field double price;//Field public void getInfo(){ System.out.println("图书名称:"+title+"图书价格:"+price); }//Method } public class HelloWorld{ public static void main(String args[]){ Book bk1 = null;//在栈上声明 Book bk2 = null; bk1 = new Book();//在堆上开辟内存 bk2 = new Book(); bk1.title = "小王子"; bk1.price = 18.8; bk2.title = "安徒生童话"; bk2.price = 89.9; bk2 = bk1; bk2.price = 16.6; bk1.getInfo(); bk2.getInfo(); } }



但是我们可以看到一块没有被栈指向的内存,也就是相当于c中没有指针的内存 我们无法操作 成为垃圾
但是java中没有free(),而是引入了GC将垃圾回收,释放内存。就不用像c一样被操作内存所困扰
 
 


提交评论
本月评论榜
本月下载榜
本月收藏榜