30/09/2018, 18:49

Anh em tư vấn về tham chiếu bên java làm sao?

ví dụ mình có hàm

void swap(int &a, int &b)
{
   int c = a;
   a = b ;
    b = c;
}

cái này của bên c++ , qua java không truyền đc tham chiếu &a , &b nữa vậy giờ làm sao bây giờ hả mọi người

time viết 20:57 ngày 30/09/2018

hình như đặt biến toàn cuc là đc

Chi Ngo viết 20:58 ngày 30/09/2018
stackoverflow.com
Melinda

How to write a basic swap function in Java

java, swap
asked by Melinda on 07:11AM - 02 Sep 10
Truong Pham viết 20:56 ngày 30/09/2018

Mình swap bằng cách thay đổi 2 giá trị của 2 đối tượng truyền vào

Interns viết 20:49 ngày 30/09/2018
public static void swap(AtomicReference<SinhVien2> sv1, AtomicReference<SinhVien2> sv2)
	{
		sv1.set(sv2.getAndSet(sv1.get()));
	}

Dùng cách này đúng không @truongphamit nhưng sao mình gọi hàm swap thì nó báo lỗi gì í giờ không biết sửa sao nữa??

trun viết 21:02 ngày 30/09/2018

giờ mình cần có hàm swap để sắp xếp lại mảng

trun viết 20:52 ngày 30/09/2018

mình mới học java nên lạ lẫm lắm chưa học hướng đối tượng nữa chứ đừng nói , qua java thật khó khăn đối với mình các cậu có thể nói rõ hơn không

Truong Pham viết 21:01 ngày 30/09/2018

Ví dụ Lớp SinhVien của bạn có thuộc tính name, Bạn viết các phương thức getter, setter cho nó. Trong hàm swap bạn thực hiện thay đổi giá trị bằng cách gọi các phương thức getter và setter đó. Lúc này khi ra khỏi phương thức giá trí của 2 SinhVien đã được thay đổi

Interns viết 21:04 ngày 30/09/2018
public void swap(SinhVien sv1, SinhVien sv2)
{
      String str = sv1.getMssv();
      sv1.setMssv(sv2.getMssv());
      sv2.setMssv(str);
}

Bạn xem mình làm như thế có cần chỉnh sửa gì không. Nhưng đây chỉ có 1 thuộc tính nếu nhiều thì cũng phải get, set hết luôn thì hơi cực

Kieu Xuan Dong viết 20:55 ngày 30/09/2018

Trong java k có con trỏ mà tất cả object đều là con trỏ hết bạn ạ. Nên truyền tham chiều là truyền object đấy

Đạt Đỗ viết 20:56 ngày 30/09/2018

Cho mình hỏi trong java nếu truyền vào 1 đối tượng thì thay đổi trong hàm đối tưởng đó thay đổi theo hả.
Ví dụ: class lopgt {public int x=0;}
void tanggt(lopx x){x.x++;}

lopgt a = new lopgt();

tanggt(a);

vậy phải không mọi người?

Chi Ngo viết 21:03 ngày 30/09/2018

Chính xác như bạn nghĩ. Tức là khi bạn truyền 1 object vào trong 1 function (method) nào đó thì bản thân cái object đấy không thay đổi nhưng các trạng thái của nó thì có thể thay đổi (các trường).
Cái này được lưu ý khi lập trình mà. Nhất là phần calendar mình thường hay bị lỗi như thế này.

Cương Nguyễn viết 20:56 ngày 30/09/2018

em đọc bài viết của a để hiểu hơn nhé
Ở dưới cùng bài viết phần Reference Copy nói đến vấn đề của em.
Có gì không hiểu thì inbox anh

Như đã trình bày ở http://daynhauhoc.com/t/to-chuc-hoc-core-java/10176 Mình xin bắt đầu với topic đầu tiên: Object Orientation(OO) trong java. Trước khi bắt đầu mình có 1 vài chú ý nho nhỏ smile: Rất nhiều từ mình sẽ không dịch sang tiếng việt mà giữ nguyên tiếng anh VD: Object, Class, Encapsulation... Vì sao lại thế chắc các bạn cũng hiểu. Không thảo luận những vấn đề không liên quan đến topic: VD: đang nói về Object Orientation lại có bạn hỏi về Exception, Thread... Những đóng góp ý kiến, c…
Bài liên quan
0