学习java 第二日

在c++中毫无疑问和内存进行一个交互的过程

而在java中则是对象;

先说问题 java 之中 

int []text=new int[5];

for(int i=0;i<5;i++)

{

          text[i]=i+1;

}

和直接赋初值一样的

int []text={1,2,3,4,5};

但是在c++中

int *text=new int[5];

for(int i=0;i<5;i++)

{

          text[i]=i+1;

}

可以

但是直接赋初值变不行了

然后赋初值访问即

public class text {
    private int []text;

	public int[] getText() {
		return text;
	}

	public void setText() {
		int []text= new int[5];
		for(int i=0;i<5;i++)
		{
			text[i]=i+1;
		}
		this.text =text;
	}
    public void show()
    {
    	for(int i=0;i<5;i++)
    	{
    		System.out.println(text[i]);
    	}
    }
    public static void main(String[] args) {
		 text brr=new text();
		 brr.setText();
		 brr.show();
		}
}

这样的代码是可以打印出 1 2 3 4 5;同样c++也可以打印出1 2 3 4 5;

c++代码如下

#include <iostream>
using namespace std;
class text
{
public:
	void init()
	{
		int *brr = new int[5];
		for (int i = 0; i < 5; i++)
		{
			brr[i] = i + 1;
		}
		arr = brr;
	}
	void show() {
		for (int i = 0; i < 5; i++)
		{
			cout << arr[i];
		}
	};
private:
	int *arr;
};

int main()
{
	text a;
	a.init();
	a.show();
	return 0;
}

但是 如果直接赋初值便会报错

#include <iostream>
using namespace std;
class text
{
public:
	void init()
	{
		int brr[5] = { 1,2,3,4,5 };
		arr = brr;
	}
	void show() {
		for (int i = 0; i < 5; i++)
		{
			cout << arr[i];
		}
	};
private:
	int *arr;
};

int main()
{
	text a;
	a.init();
	a.show();
	return 0;
}

 打印出-858993460-858993460-858993460-858993460-858993460请按任意键继续. . .

总结java 之中没有内存的说法 都是对象经过我的调试发现每个对象的后面都会有一个id 判断相等是通过id; 

而在c++里面不是 是通过内存的地址 准确的来说是通过一个二进制;

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值