روز 14: روش استاتیک و غیر استاتیک

*متغیرهای استاتیک در جاوا *
متغیرهای استاتیک در جاوا متغیرهای سطح کلاس هستند که در بین همه اشیاء یک کلاس مشترک هستند. آنها با استفاده از کلمه کلیدی “استاتیک” اعلام شده و در منطقه کلاس ذخیره می شوند. از آنجا که آنها به اشتراک گذاشته شده اند ، به مقادیر آنها توسط هر شیء کلاس قابل دسترسی و اصلاح است. آنها همچنین به عنوان متغیرهای کلاس شناخته می شوند.
از متغیرهای استاتیک به طور معمول برای نشان دادن داده های سطح کلاس استفاده می شود ، مانند تعداد نمونه های یک کلاس که ایجاد شده است ، حداکثر مقدار مجاز برای یک خاصیت خاص یا یک مقدار پیش فرض برای یک ویژگی. [TBD]
متغیرهای غیر استاتیک در جاوا
متغیرهای غیر استاتیک در جاوا نیز به عنوان متغیرهای نمونه شناخته می شوند. آنها در یک کلاس تعریف می شوند اما به عنوان استاتیک مشخص نمی شوند. بر خلاف متغیرهای استاتیک ، متغیرهای غیر استاتیک با نمونه ای از یک کلاس همراه هستند و در حافظه پشته ذخیره می شوند[TBD]بشر این بدان معنی است که هر شی از کلاس کپی خاص خود را از متغیرهای غیر استاتیک خواهد داشت.
از متغیرهای غیر استاتیک برای نشان دادن داده های سطح شی استفاده می شود و به طور معمول برای ذخیره داده هایی که برای هر نمونه از یک کلاس منحصر به فرد است استفاده می شود. با استفاده از منابع شیء می توان به آنها دسترسی پیدا و اصلاح کرد.
class BankAccount {
private int accountNumber;
private String accountHolderName;
private double balance;
public BankAccount(int accountNumber, String accountHolderName, double balance) {
this.accountNumber = accountNumber;
this.accountHolderName = accountHolderName;
this.balance = balance;
}
public int getAccountNumber() {
return accountNumber;
}
public String getAccountHolderName() {
return accountHolderName;
}
public double getBalance() {
return balance;
}
}
class Main{
public static void main(String args[]){
BankAccount account1 = new BankAccount(12345, "John Doe", 5000.0);
BankAccount account2 = new BankAccount(67890, "Jane Doe", 6000.0);
System.out.println("Account Number: " + account1.getAccountNumber());
System.out.println("Account Holder Name: " + account1.getAccountHolderName());
System.out.println("Balance: $" + account1.getBalance());
System.out.println("Account Number: " + account2.getAccountNumber());
System.out.println("Account Holder Name: " + account2.getAccountHolderName());
System.out.println("Balance: $" + account2.getBalance());
}
}
`خروجی:
شماره حساب: 12345
نام دارنده حساب: جان دوی
تعادل: 5000.0 دلار
شماره حساب: 67890
نام دارنده حساب: جین دوه
تعادل: 6000.0 دلار “
روش استاتیک.
• یک روش استاتیک به جای هدف یک کلاس متعلق به کلاس است.
• بدون نیاز به ایجاد نمونه ای از یک روش استاتیک قابل استفاده است
کلاس.
• یک روش استاتیک می تواند به عضو داده استاتیک دسترسی پیدا کند و می تواند مقدار آن را تغییر دهد.[TBD]آزمون کلاس {
// روش استاتیک
جمع int int static عمومی (int a ، int b)
{
بازگشت A + B ؛
}
class Test {
// static method
public static int sum(int a, int b)
{
return a + b;
}
class Main {
public static void main(String[] args)
{
int n = 3, m = 6;
// call the static method
int s = Test.sum(n, m);
System.out.print("sum is = " + s);
}
}
Output:
sum is = 9
روشهای غیر استاتیک
• یک روش غیر استاتیک قبل از نام کلمه کلیدی استاتیک ندارد
روش
• یک روش غیر استاتیک متعلق به یک شیء از کلاس است و شما مجبور هستید
برای دسترسی به آن نمونه ای از کلاس ایجاد کنید.
• روشهای غیر استاتیک می توانند به هر روش استاتیک و هر متغیر استاتیک دسترسی پیدا کنند
بدون ایجاد نمونه ای از کلاس.[TBD]
class Test{
// static method
public int sum(int a, int b)
{
return a + b;
}
}
class Main {
public static void main(String[] args)
{
int n = 3, m = 6;
Test g = new Test();
int s = g.sum(n, m);
// call the non-static method
System.out.print("sum is = " + s);
}
}
Output:
sum is = 9
وظیفه
-
تعداد مکمل دو به عنوان یک سیستم عدد باینری تعریف شده است که مهمترین بیت نشان دهنده علامت است ، و این امکان را برای ارائه تعداد مثبت و منفی فراهم می کند
-
فرم تحول یونیکد 16 بیتی یا یونیکد (UTF-16) روشی برای رمزگذاری داده های کاراکتر است که قادر به رمزگذاری 1،112،064 کاراکتر ممکن در یونیکد است.[TBD]
پیوند مرجع
(https://pd.daffodilvarsity.edu.bd/course/material/oop-lecture-6-173/pdf_content)
(https://www.prepbytes.com/blog/java/difference-between-static-and-non-static-variables-in-java/)