Learn Java
304 subscribers
92 photos
1 video
94 files
84 links
یاد گیری زبان برنامه نویسی جاوا و نکات و مفاهیم
کاربردی ان



@parsa8113
@bardiademon
Download Telegram
عملکرد پشته فراخوانی و رکورد فعالیت ها :
برای درک نحوه فراخوانی متد در جاوا ابتدا نیاز است به بررسی ساختما داده (یعنی کلکسیونی از ایتم های داده مرتبط با هم) بنام پشته (stack )بپردازیم. میتوانید پشته را همانند تعدادی بشقاب که روی هم قرار گرفته اند در نظر بگیرید هنگامی که بشقابی روی بقیه ی بشقاب ها قرار میگیرد , معمولا در بالای بشقاب ها جای داده میشود (هیچ کس از وسط بشقاب ها بشقابی قرار نمیده) به این عمل گذاشتن یا push کردن بشقاب در پشته گفته میشود ,

در مثالی مشابه هنگامی که بشقابی برداشته میشود معمولا از بالای بشقاب ها برداشته خواهد شد به این عمل برداشتن یا pop کردن بشقاب از پشته گفته میشود
پشته ها بعنوان ساختمان های داده (last-in, last-out)
Lifo شناخته میشوند بدین معنی که اخرین ایتمی که در پشته گذاشته میشود اولین ایتی است که از پشته برداشته میشود
عبارت break :
عبارت break با اجرا در عبارات while, do...while, for, یا switch سبب میشود تا کنترل بلافاصله از عبارت خارج شده , و برانامه با اولین عبارت پس از عبارت ادامه یابد. معمولا از دستور break برای خارج شدن زود هنگام از حلقه یا پرش از مابقی switch استفاده میشود

توضیح عملکرد break در for :

` public class LeaenJava {
public static void main (String[] args) {
int count;
for (count =1; count <= 10; count ++)
if (count == 5)
break;
System.out.printf("%d", count);
}
System.out.printf("%nBroke out of loop at count = %d%n", count)
}
} `

output :

1 2 3 4
Broke out of loop at count = 5
تبدیل متغیر ها به یکدیگر در جاوا

در زبان جاوا نیز به مشابه سایر زبان های برنامه نویسی روش هایی برای تبدیل متغیرها به یکدیگر وجود دارد که در این مقاله به برخی از آنها اشاره می گردد.

1- تبدیل string به double

بطور کلی برای تبدیل sting به double سه روش متفاوت وجود دارد که در ذیل بدان ها اشاره می شود:

روش اول استفاده از Double.parseDouble

public static double parseDouble(String str) throws NumberFormatException

در این متد مقدار string از طریق انداختن آن در استتثناها ، به نوع double تبدیل می شود و استثناهای آن به شرح زیر می باشد:

NullPointerException این استثنا زمانی رخ خواهد داد که مشخص شود که مقدار بازگردانده شده از string به double تهی است.

NumberFormatException این استثنا زمانی رخ خواهد داد که مشخص شود که فرمت رشته بازگردانده شده به نوع double، معتبر نیست.

سینتکس کلی آن به شرح زیر می باشد.

String str="15.20";
Double variable= Double.parseDouble(str);

روش دوم: استفاده از Double.valueOf سینتکس کلی آن به شکل زیر می باشد

String str="140.10";
Double variable= Double.valueOf(str);



روش سوم : استفاده از کلاس سازنده Double که سینتکس کلی آن به شرح زیر می باشد:

String str="130.302";
Double variable= new Double(str);

مثال:

ublic class Convert{
public static void main(String args[]){
//parseDouble استفاده از روش
String str="130.102";
Double variable= Double.parseDouble(str);
System.out.println(variable);
// استفاده از روش کلاس سازنده
String str2="130.102"";
Double var2= new Double(str2);
System.out.println(var2);

//valueOf استفاده از روش
String str3="130.102"";
Double var3= Double.valueOf(str3);
System.out.println(var3);
}
}
خروجی:

130.102
130.102
130.1

2- تبدیل integer به String

برای تبدیل متغیرهای int به نوع string از روش String.valueOf استفاده می کنیم دستور زیر راببینید:



int variable = 15;
String str = String.valueOf(variable);

3- تبدیل String به integer

برای تبدیل متغیرهای String به integer از روش Integer.parseInt و Integer.valueOf استفاده می کنیم. دستور زیر را ببینید:

String num = "17";
int var = Integer.parseInt(num);
System.out.println(var);

روش دوم :

String num = "17";
int var = Integer.valueOf(num);
System.out.println(var);

4- تبدیل String به Long

برای تبدیل فوق از روش parseLong استفاده می کنیم به مثال زیر دقت کنید.

String num = "17";
Long var = Long.parseLong(num);
System.out.println(var);



5- تبدیل integer به double

برای تبدیل integer به double به صورت زیر عمل می کنیم.

int var = 12;
double dvar = var;
ازمون :

جمع یک مقدار از نوع double و یک مقدار از نوع int و یک مقدار از نوع float، در نهایت از نوع double خواهد بود.

پاسخ : صحیح

شما می توانید با استفاده از یک متحد ساز، یک مقدار از یک نوع دیگر را با یک نوع دلخواه ذخیره کنید.

پاسخ : صحیح

هنگامی که شما بر روی دو عملوند با نوع مختلف، عملیات محاسباتی انجام می دهید، شما باید آنها را به یک نوع، مورد محاسبه قرار دهید.

پاسخ :غلط
دلیل :
هنگامی که شما بر روی دو عملوند با نوع مختلف، عملیات محاسباتی انجام می دهید، جاوا آنها را به یک نوع متحد ساز محاسبه می کند.
تبدیل رشته به عدد در جاوا

گاهی لازم است رشته ای عددی را در جاوا به عدد معادل آن تبدیل کنیم. برای این کار می توان از متد parseInt که در کلاس Integer است استفاده کرد.

مثال:
int a = Integer.parseInt("1234");
تفاوت String.valueOf و Integer.toString

بر اساس مستندات جاوا، در صورتیکه پارامتر ورودی String.valueOf() مقدار null باشد، مقدار "null" را برمیگرداند، در حالی که اگر ورودی Integer.toString() مقدار null باشد خطای NullPointerException رخ خواهد داد.

مثال مقدار null در String.valueOf
Integer number = null;
String result = String.valueOf(number);
System.out.println(result);

خروجی
null

مثال مقدار null در Integer.ToString
Integer number = null;
String result = Integer.toString(number);
System.out.println(result);

خروجی
Exception in thread "main" java.lang.NullPointerException at fortest.Main.main(Main.java:6)
چگونه در جاوا کاراکتر تصادفی بین کاراکترهای a تا z تولید کنیم؟

پاسخ:

package start1397;

import java.util.Random;

public class Test4 {
public static void main(String[] args) {
Random rnd = new Random();
char c = (char) (rnd.nextInt(26) + 'a');
System.out.println(c);
}
}

با تست برنامه بالا هر بار برای شما یک کاراکتر انگلیسی تصادفی تولید می شود، برای مثال بعد اجرای کد جاوای بالا کاراکتر زیر به صورت تصادفی تولید شده است:

Output:
i


@this_java
پاک کردن عناصر درون HashSet :
void clear
برای پاک کردن تمامی عناصر HashSet استفاده میشود


public class Connect
{
public static void main (String[] args)
{
HashSet<String> ssm = new HashSet<String😠);
ssm.add("PArss");
System.out.println("Befor Clear : "+ssm);
ssm.clear();
System.out.println("After Clear : "+ssm);
}


}

Out Put:
Befor Clear : [PArss]
After Clear : []

@this_java
چک کردن موجود بودن یک عنصر در HashSet

boolean contains(object)
اگر عنصر وجود داشت مقدار true را بر میگرداند
در غیر این صورت مقدار برگشتی false خواهد بود
به مثال زیر توجه کنید :

public class Connect
{
public static void main (String[] args)
{
HashSet<String> ssm = new HashSet<String😠);
ssm.add("PArss");
ssm.contains("parsa");

System.out.println(ssm);

System.out.println(ssm.contains("parsa"));
}


}


OUTPUT :

[PArss]
false

@this_java
craps.java
1.4 KB
مبحث اموزشی : بازی شانس ; معرفی enum

یکی از بازی های مورد علاقه در بسیاری از نقاط جهان craps نام دارد که با طاس انجام میشود....
محبوب ترین زبان های برنامه نویسی جهان
پروتکل های شبکه
زبان های استفاده شده در وب سایت های بزرگ دنیا

@this_java
محاسبه ی فاکتوریل در جاوا :

import java.util.Scanner;

public class Factorial {

public static void main(String[] args) {
int n, fact = 1;
Scanner input = new Scanner(System.in);
System.out.println("Enter Number Of N:");
n = input.nextInt();

for (int i = 1; i <= n; i++) {
fact = fact * i;
}
System.out.println("Factorial(" + " " + n + " ) " + "is " + fact);

}

}
محاسبه ی فاکتوریل در جاوا : با استثنای فاکتوریل منفی

public class Factorial {
public static void main(String[] args) {
int i;
Scanner in = new Scanner(System.in);
System.out.println("Please Enter N : ");
i = in.nextInt();
Factorial m = new Factorial();
if(i <0) {

System.out.println("na");
} else if (i == 0){
System.out.println("1");
} else {
m.Fact(i);
}

}
public void Fact(int i) {
int b = 1;
for (int ms = 1; ms<=i; ms++)
b = b *ms;
System.out.println(b);
}
}
بدست اوردن عناصر ارایه به همراه شماره ی خونه ی قرار گیری انها:


package learn;


/
*
*
@author Parsa
*/
public class Learn {

/
* @param args the command line arguments
*/
public static void main(String[] args) {

final int Array_SIZE= 10;
int[] Array = new int[Array_SIZE];
for(int i = 0; i< Array.length; i++)
Array[i] = 2+2 *i;

System.out.println("Index"+"\t"+"Value");
for(int i= 0; i<Array.length; i++)
System.out.println(i+"\t" +Array[i]);


}

}


خروجی :

Index Value
0 2
1 4
2 6
3 8
4 10
5 12
6 14
7 16
8 18
9 20
نمایش گرافیکی داده های ارایه با نمودار میله ای :

package learn;


/
*
*
@author Parsa
*/
public class Learn {

/
* @param args the command line arguments
*/
public static void main(String[] args) {
int Array[] = {0,0,0,0,0,1,3,5,6,1,10};
System.out.println("Grade Distribution : ");
for(int counter = 0; counter< Array.length; counter ++) {


if(counter == 10)
System.out.printf("%5d: ",100);
else
System.out.printf("%02d-%02d: ", counter *10, counter *10+9);

for(int stars =0; stars<Array[counter]; stars++)
System.out.print("*");

System.out.println();

}
}

}
خروجی :
00-09:
10-19:
20-29:
30-39:
40-49:
50-59: *
60-69: ***
70-79: *****
80-89: ******
90-99: *
100: **********
@this_java
استفاده از عناصر ارایه بعنوان شمارنده :


public class Learn {

public static void main(String[] args) {
Random is = new Random();
int[] fer = new int[7];

for (int i = 1; i <= 6000000; i++) {
++fer[1 + is.nextInt(6)];
}
System.out.println("Face" + "\t" + "Ferquency[face]");

for (int face = 1; face < fer.length; face++) {
System.out.println(face + "\t" + fer[face]);
}
}

}
استفاده از ارایه ها برای تحلیل نتایج:

به مثال زیر توجه کنید :

از بیست دانشجو در مورد کیفیت غذای عرضه شده در رستوران دانشگاه سوال شده و پاسخ دانشجویان میتواند در محدوده ی 1 تا 10 قرار داشته باشد. به اینصورت که 1 نشانده ی کیفیت پایین و ده کیفیت بالاست... پاسخ دانشجویان را در یک ارایه قرار داده و میزان و تعداد پاسخ های همسان را مشخص سازرید

راه حل:

public class Learn {

public static void main(String[] args) {
int[] i = {1,2,5,4,3,5,2,1,3,3,1,4,3,3,3,2,3,3,2,14};
int[] ferquency = new int [6];

for(int answer = 0; answer<i.length;answer++) {

try{
++ferquency[i[answer]];
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println(e);
System.out.printf("Responses [%d]= %d%n%n",answer,i[answer]);
}
}
System.out.println("Rating"+"\t"+"Ferquency");

for(int rating = 1; rating<ferquency.length;rating++) {

System.out.println(rating+"\t"+ferquency[rating]);
}
}

}


خروجی :


java.lang.ArrayIndexOutOfBoundsException: 14
Responses [19]= 14

Rating Ferquency
1 3
2 4
3 8
4 2
5 2

@this_java
چاپ تمامی عناصر ارایه ی دو بعدی:

package learn;

public class Learn {

public static void main(String[] args) {
//row equals sart
//columns means soton
int[][] Array = {{2, 2, 3, 4}, {3, 4, 2, 1}};

int[][] parsa = {{1, 2}, {3}, {4, 5, 6}};
System.out.println("Array: ");
output(Array);

System.out.println("Parsa: ");
output(parsa);
}

static void output(int[][] k) {

for (int counrer = 0; counrer < k.length; counrer++) {
for (int c = 0; c < k[counrer].length; c++) {

System.out.println(k[counrer][c]);
}

}
}
}


@this_java