Mang đến cho bạn hành trang là Kiến thức và Kinh nghiệm

Lựa chọn chủ đề bạn quan tâm

Cùng nhau thảo luận về các vấn đề

Hãy theo dõi chúng tôi nếu bạn thấy bổ ích

  1. Hỏi đáp IT
  2. Hỏi nhanh

Hỏi về static trong Java

344 Lượt xem 10 Bình luận 0 Lượt báo xấu
Mọi người cho em hỏi câu lệnh public static void.... từ static có nghĩa là gì và cách dùng như nào với
Câu trả lời

- Bạn đã sẵn sàng thảo luận về chủ đề này. Hãy bấm "Viết bình luận", bạn có thể lựa chọn sử dụng tài khoản Facebook hoặc Google++

- Vì sự phát triển của cộng đồng CNTT/CNPM tại Việt Nam!

Unknown user
No responses yet

static ở đây để chỉ phương thức này có thể gọi mà không cần khởi tạo đối tượng.
0 Lượt thích

Ngoài dùng cho phương thức (method), từ khóa static còn dùng cho biến (variable), block, lớp (class).
Google đọc thêm: static in java
0 Lượt thích

-Là từ khóa đi với method, instance variable trong 1 class.
-Với static method/ variable, ta có thể truy cập chúng thông qua class, mà không cần phải khới tạo object rồi mới truy cập.
-Static Variable được xem là variable dùng chung của các object thuộc class đó -> Khi 1 object được tạo, 1 bản copy của static variable (sv) được gán cho object đó. Chú ý: chỉ có 1 bản copy sv của class được gán cho tất cả các object của class đó khi chúng được khởi tạo.
-Static method ko thể gọi các non-static method, variable; nhưng ngược lại non-static method có thể gọi static medthod, static variable.
0 Lượt thích

"Static method ko thể gọi các non-static method, variable; nhưng ngược lại non-static method có thể gọi static medthod, static variable"
Đố chú tại sao như vậy?
0 Lượt thích

Nhờ anh Đức Anh giải thích kỹ giùm em cái... Hi hi...
Em xin cảm ơn anh!
0 Lượt thích

Nói ngắn gọn dễ hiểu nhé:
1. non-static class thì dùng ở đâu khởi tạo object ở đó. Các object khác nhau các thuộc tính có giá trị khác nhau.
2. static class thì chương trình sẽ khởi tạo 1 object duy nhất khi khởi chạy và object này gọi ở đâu trong chương trình cũng được. Ngoài ra không khai báo thêm
Ví dụ: //Mình bỏ học Java, thôi cho mình lấy ví dụ C# nhé, nhỡ không đúng đừng giận mình =))
 
 class Ahjhj
    {
    public int A;
    public void Du();
    }

    static class DoNgok
    {
    public static int A;
    public static void Du();
    }
Khi sử dụng các class này, ta gọi như sau:
 
 Ahjhj bien1=new Ahjhj();//Khai báo object bien1
    bien1.A=1;//Gán giá trị cho thuộc tính A của bien1
    Ahjhj bien2=new Ahjhj();//Khai báo object bien2
    bien2.A=2;//Vậy bien1 và bien2 là 2 object khác nhau nên thuộc tính A của chúng chả liên quan đến nhau.

    DoNgok.A=1;//Tức là thuộc tính A của DoNgok là 1 và ở đâu cũng là 1. Không khai báo object nào hết. Nếu cố tính khai báo thì trình biên dịch sẽ báo lỗi ngay
    DoNgok.Du()//Gọi method cũng không cần đến khai báo
Mà trong non-static class vẫn có thể có thuộc tính static hoặc phương thức static. Kiểu như System.DateTimecó thuộc tính Now là static chẳng hạn, thì có thể khai báo DateTime day1 = new DateTime(), tức là day1 có các thuộc tính non-static như năm, ngày, tháng, giờ, phút, giây cũng như các phương thức hiển thị của riêng day1, tuy nhiên không có day1.Now mà chỉ có DateTime.Now để lấy giá trị thời điểm đang xét.
0 Lượt thích

Theo em nghĩ, vì non-static method/ variable (nm)/(nv) được gọi thông qua instance, còn static method (sm) được gọi thông qua class của instance đó. Giả sử ta có:
 
class Java {
    private String Sun;
    private static String Moon;
    public static void doStaticThing{
         Sun = "Sun";
                       --> method và variable được gọi mà không có Instance nào khởi tạo và invoke nó -> Compile Error
         doNonStaicThing();
    }


    public static void doNonStaticThing{
         // do something
         Moon = "moon";
                       ---> Ở đây hợp lệ vì ta không cần phải khởi tạo đối tượng và invoke chúng
         doStaticThing();

         sun = "sun"; 
    }

  }
Nếu có gì sai sót, mong sư huynh chỉ giáo.
0 Lượt thích

có phải là vì static method là method của lớp và nó được khởi tạo khi chương trình được thực thi , mà khi đó thì non-static variable chưa đươc khai báo lấy gì mà gọi, còn non-static method gọi được static variable thì do static variable là thành viên của 1 lớp nên non-static method có thể gọi như các thành viên khác...
0 Lượt thích

static method là phương thức của class còn non-static method là phương thức của thực thể
0 Lượt thích

Chém gió thế này. Sai xin chỉ giáo:
Tất cả mọi truy cập biến, hàm đều thông qua địa chỉ trên vùng nhớ ảo. Không có địa chỉ-> miễn truy cập.
Static <-> Tĩnh.

Vậy cái gì tĩnh ? Là địa chỉ tĩnh.

Địa chỉ tĩnh thì sao ? Thì nó sinh ra ở đâu thì nó nằm im ở đó và chỉ có 1 mình nó thôi đến khi ứng dụng kết thúc.
Nó nằm im thì những thứ khác thừa biết địa chỉ của nó và truy cập được. Nó chỉ có 1 nên không được sinh ra cùng đối tượng. Không thể có 2 thằng cùng CMND hay 2 người cùng có quyền sở hữu 1 mảnh đất.

Còn non-static <-> không tĩnh ?
Thì nó, số lượng của nó và địa chỉ của nó sinh ra ngẫu nhiên. Không ai biết chắc nó sinh ra lúc nào, địa chỉ ở đâu nên không thể truy cập thẳng đến nó. Ta phải truy cập thông qua cái chứa nó-instance của đối tượng. Đấy là lý do tại sao muốn truy cập đến method hay biến... non-static thì ta phải khởi tạo/ xác định được instance của đối tượng.

0 Lượt thích

Từ khóa tìm kiếm

Câu trả lời mới nhất

Tin tuyển dụng