黑马程序员技术交流社区
标题:
java中有没有类似于c语言中Structure结构?
[打印本页]
作者:
奚华
时间:
2012-11-18 16:30
标题:
java中有没有类似于c语言中Structure结构?
本帖最后由 奚华 于 2012-11-19 17:03 编辑
今天看一个帖子,这个帖子解释java的class文件的结构,帖子的主人使用了C语言来解释,里面用到了C语言中的Structure结构,不禁让我想起C语言的好处来,我也在想java有没有这样一种机制来完成C中的Structure,要不然我老是觉得C语言是最本质的语言,老信不过JAVA!求解!
作者:
廖力
时间:
2012-11-18 17:29
本帖最后由 廖力 于 2012-11-18 17:33 编辑
c里面的不是struct么?结构体 Structure没见过。。。
//gcc的编译器,devcpp的IDE
//定义
struct Node{
int data;
struct Node *next;
};
//申明
struct Node *p;
//赋值
pNew->data = d;
pNew->next = NULL;
复制代码
struct基本可以理解为简单的类,里面有属性(包括基础数据类型和指针,可以嵌套使用),但是没有方法
作者:
奚华
时间:
2012-11-18 17:32
我没写准确,C里就是struct,java里有没有这样的结构?
你说C中的struct没有方法是错的,里面可以有方法的!
作者:
廖力
时间:
2012-11-18 18:18
奚华 发表于 2012-11-18 17:32
我没写准确,C里就是struct,java里有没有这样的结构?
你说C中的struct没有方法是错的,里面可以有方法的 ...
根据谭浩强c语言程序设计这本书 原话:
“结构”是一种构造类型,它是由若干“成员”组成的。每一个成员可以是一个基本数据类型或者又是一个构造类型。
里面不可能有函数 只能有函数指针 由函数指针指向其他函数
函数指针是指针 指针也是基本数据的一种
自己在机子上实验了一下 里面只要有类似函数的就会报错
个人理解是结构体是一种数据 函数是一种操作过程
//gcc的编译器,devcpp的IDE
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
struct Data{
int data;
int (*pSayHello)();
};
int sayHello(int data){
printf("Hello %d",data);
return 1;
}
int main(){
struct Data *p1;
int i = 0;
p1 = (struct Data *)malloc(sizeof(struct Data));
p1->data = 9;
p1->pSayHello = sayHello;
i = p1->pSayHello(p1->data);
return i;
}
复制代码
运行结果:
Hello 9
--------------------------------
Process exited with return value 1
Press any key to continue . . .
作者:
奚华
时间:
2012-11-18 18:35
我记错了,sorry!
作者:
王震阳老师
时间:
2012-11-18 19:30
java里的class其实就相当于c中的结构体。java里没有struct。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2