導航:首頁 > 編程語言 > java結構體定義

java結構體定義

發布時間:2022-06-02 08:17:51

A. 求教在java中,定義結構體的方法

Java是面向對象的沒有結構,但是你可以用類(class)啊

B. C語言中帶指的結構體如何在JAVA中實現相應定義

//結構體可以用類代替,變數保存的就是結構體這種Object類型。所以不需要加*號即可。
classTriTreeNode{
publicStringname="";
publicTriTreeNodemLeftChild;
publicTriTreeNodemRightChild;
;
;
;
}

publicclassTest24{
publicstaticvoidmain(String[]args){
/*創建一個節點*/
TriTreeNodemTriTreeNode=newTriTreeNode();
mTriTreeNode.name="A";
/*再創建一個孩子節點,添加到上個節點的左孩子*/
TriTreeNodebTri=newTriTreeNode();
bTri.name="B";
mTriTreeNode.mLeftChild=bTri;
/*再創建個孩子節點,添加到A節點的右孩子*/
TriTreeNodecTri=newTriTreeNode();
bTri.name="C";
mTriTreeNode.mRightChild=cTri;
/*再創建一個節點D,添加到B孩子的左節點上*/
TriTreeNodedTri=newTriTreeNode();
bTri.name="D";
bTri.mLeftChild=dTri;
}
}

C. c語言中的結構體與java中的類的異同

C中的結構體只是多種不同類型數據的集合,java中的類就是面向對象中的類,與C++中的類類似。
C語言中的結構體就是單純的結構體,組合數據。

D. 如何在java中定義一個結構體

Java並不像c語言一樣定義了結構體的語法形式,取而代之的是類,聲明一個類,裡麵包含很多屬性,也就是相當於結構體中多種變數類型的功能。
Java屬於高級語言,其發展就是從c、c++演變而來,去掉了煩惱的指針,舍棄掉了一些類似於結構體的不必要的語言結構。

E. 在JAVA和安卓中如何定義一個結構體或者其他的辦法幫我實現這個結構體,進行數據的讀和寫

java中是沒有結構體的,但可以使用類來模擬結構體

F. Java中定義數據結構如何實現

vc里這叫結構體,Java中沒有結構體的概念。可以用一個類來實現。建議把Java的一些基礎知識鞏固一下。呵呵。學習順利哦~~

G. 什麼是java 中的類,和c中的結構體有什麼區別

C的結構只擁有數據,程序代碼是以函數形式存在的,來操作數據。
Java的類,是將代碼與數據集成在一起,特定代碼專操作特定數據,能減少很多錯誤,並且將模塊設計與系統集成分離,有利於開發大型應用和團隊協作。

H. java socket 如何發送一個結構體消息,java中結構體是個什麼概念...

有一個socket 程序,一端是c++寫的socket 服務程序
另一端是Java寫客戶端程序,兩者之間需要通信。
c++/c接收和發送的都是結構體,而Java是直接發送的位元組流或者byte 數組。

解決方法:c++/c socket 在發送結構體的時候其實發送的也是位元組流。因為結構體本身也是內存中的一塊連續數據。問題就變成了如何把結構體手動轉成位元組的問題了
採用類似的報頭:
// packet head
typedef struct tagPacketHead{
long PacketID;
long PacketLen;

}PacketHead;此時套介面的讀寫方式為先讀報頭,在報頭中取出數據負載的長度,然後再讀相應位元組的數據。

包頭後面跟上包體,其中包體的長度,就是上面結構體中的PacketLen,Clinet首先接受包頭,因為包頭是兩邊約定好的,所以可以直接Receive一個定長的消息,也就是這個包頭的長度的消息,從包頭中取得包體的長度後,就可以再次Receive一個包體長度的消息了。那麼Java中如何發送一個結構體呢?下面是解決方法:

使用C/S模式,Client為VC6開發,Server為Java,通過Socket通信。
package org.charry.org;
import java.net.*;
/**
*
* 位元組轉換,參考網路文章
*/
class Packet {
private byte[] buf = null;
/**
* 將int轉為低位元組在前,高位元組在後的byte數組
*/
private static byte[] toLH(int n) {
byte[] b = new byte[4];
b[0] = (byte) (n & 0xff);
b[1] = (byte) (n >> 8 & 0xff);
b[2] = (byte) (n >> 16 & 0xff);
b[3] = (byte) (n >> 24 & 0xff);
return b;
}
/**
* 將float轉為低位元組在前,高位元組在後的byte數組
*/
private static byte[] toLH(float f) {
return toLH(Float.floatToRawIntBits(f));
}
/**
* 構造並轉換
*/
public Packet(int packetID, int packetLen, String packetBody) {
byte[] temp = null;
buf = new byte[packetBody.getBytes().length + 8];
temp = toLH(packetID);
System.array(temp, 0, buf, 0, temp.length);
temp = toLH(packetLen);
System.array(temp, 0, buf, 4, temp.length);
System.array(packetBody.getBytes(), 0, buf, 8, packetBody.length());
}
/**
* 返回要發送的數組
*/
public byte[] getBuf() {
return buf;
}
/**
* 發送測試
*/
public static void main(String[] args) {
try {
String tmp = 「test string!」;
Socket sock = new Socket(」127.0.0.1″, 8888);
sock.getOutputStream().write(
new Packet(123, tmp.length(), tmp).getBuf());
sock.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
如果需要用Java 接收結構體的話只需要將上面過程逆過來即可。

I. C++中的結構體在java中應該怎麼定義

struct Stu
{
int n;
};
void test(struct Stu *s[])

void main()
{
struct Stu *s;
s=new Stu[10];//請問這里是不是動態開辟一個struct的數組呢????????
//然後我調用test()
test(s);
}
你定義的s是指向一個結構體變數的,而不是結構體數組
如果要指向一個結構體數組,應該這樣定義,struct Stu (*s)[];//s指向一個結構體數組
s=new Stu[10];
這樣就可以了
另外:void test(struct Stu *s[])//Stu *s[],那麼s是一個指針數組,而不是一個指針,但是s數組中的元素都是指向結構體變數的指針變數...
你的意思是想讓s指向一個結構體數組,那麼改成這樣:void test(struct Stu (*s)[])應該就可以了.(還不行的話,就直接改成void test(struct Stu *s)試試,不過我感覺這個可能不對,因為類型也不匹配,但沒有運行過..)
呵呵
祝你學習順利...
剛運行過了,我的修改不行
一樓應該是正解...
s=new Stu[10];//請問這里是不是動態開辟一個struct的數組呢????????
是在內存的堆區中動態開辟一個長度為10的結構體數組....
堆區中開辟的內存不會因為函數的結束而自動釋放,所以函數結束前要使用一條delete s;語句來釋放分配的內存...

改成下面的就對了...
#include<iostream.h>
struct Stu
{
int n;
};
void test(struct Stu *s[])
{}
void main()
{
struct Stu **s;
s=new Stu*[10];//請問這里是不是動態開辟一個struct的數組呢????????
//然後我調用test()
test(s);
}
你的意思是s指向一個指針數組,那麼s就是一個指向指針的指針變數,所以應該是
struct Stu **s;
s中的元素是指針變數,那麼就應該這樣:s=new Stu*[10];
呵呵,希望對你有所幫助..

J. java 如何實現結構體

雖然我對C不是太在行,但你寫的這個東西好像不太對啊。

如果你是這個意思的話
struct Indivial{
int rank[5];
int fine[5];
char aa[3];
};

struct population{
int maxrank;
float rank_ration[10];
int rank_Num[10];
Indivial ind_pop;
} pop[],*p;

那麼相對的Java是

class Indivial{
int rank[] = new int[5];
int fine[] = new int[5];
char aa[] = new char[3];
}

class population{
int maxrank;
float rank_ration[] = new float[10];
int rank_Num[] = new int[10];
Indivial ind_pop;
}

class SomeOtherClass {
population pop[], p[];
}

閱讀全文

與java結構體定義相關的資料

熱點內容
人民幣怎麼演算法 瀏覽:754
什麼app可以聽懂刺蝟說話 瀏覽:596
安卓機內存小如何擴大 瀏覽:125
粉絲伺服器怎麼和安卓手機通信 瀏覽:398
初中數學競賽pdf 瀏覽:568
linux自定義安裝 瀏覽:188
fpic要在每個編譯文件 瀏覽:866
編譯原理廣義推導的定義 瀏覽:911
怎麼在已有的壓縮文件里加密碼 瀏覽:517
安卓手機怎麼設置系統軟體 瀏覽:766
php前端java後端 瀏覽:794
數據框轉換為矩陣python 瀏覽:74
單片機程序反匯編 瀏覽:853
編程和實物不一樣 瀏覽:880
天官賜福小說什麼app可看 瀏覽:208
原車空調改壓縮機 瀏覽:103
python調用其它文件中的函數 瀏覽:484
安卓車載大屏如何下載歌詞 瀏覽:959
刪除這些文件夾 瀏覽:675
新建文件夾怎麼設置快捷搜索 瀏覽:503