Biến đặt trong method static thì có phải biến static không?

hi there ! như tiêu đề cho em hỏi khi khai báo biến local trong method static thì nó cũng là biến static đúng không ạ ?

Điều đó chả quan trọng, tại vì ngoài ra còn nơi nào xài được biến local nữa đâu (ko tính trò return nhé)

3 Likes

Các biến sử dụng trong static method chỉ là biến cục bộ và không phải là static. Biến static phải được khai báo ngoài method, tương tự như là các biến toàn cục (global scope). Để hiểu rõ hơn về vấn đề này, bạn nên tìm hiểu kỹ về phạm vi (scope) của biến.

7 Likes

Biến được khai báo trong method thì kết thúc trong method. Nếu method có return thì chỉ có đối tượng / giá trị được đưa ra chứ biến không còn, nếu đối tượng / giá trị đó mà không được gán cho một biến bên ngoài thì cũng sẽ bị xoá.

Trong Java thì không hẳn tồn tại global scope như C++, nhưng có thể dùng các biến public static cũng có tác dụng tương tự.

3 Likes

hàm static được gọi luôn khi trong class không cần qua dấu “.” khi khởi tạo class
Vd: Object object=new Object():
bình thường chạy hàm gọi object.Methods() còn hàm static gọi luôn Methods( ) để chạy, và gọi hàm con của lớp khi ngoài class khai báo nó
khi gọi methods static tức là chạy hàm đó với định nghĩa của nó và biến static không cần thiết có trong hàm static vì có thể dùng biến thường
nếu có thì hàm chạy và biến static gán giá trị khác nhau tùy theo mục đích và có cách để gọi nó thông qua trung gian
static chỉ là khai báo một biến động có thể thay đổi và gọi để dùng trong class khác

    public class ClassExample{
           public static Methods( int variable){
          //  resource
      }
}

trong class chỉ cần gọi Methods( value) để chạy hàm
ngoài class gọi ClassExample.Methods( value) để chạy hàm để mụch đích nào đó liên quan, ngoài class không thể gọi luôn tên hàm để chạy vì hàm chưa được định nghĩa, hàm chỉ được định nghĩa bên trong class cha của nó và gọi theo kế thừa, hàm static gọi luôn bằng tên hàm để thực thi không cần khởi tạo Object

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?