✳️صورت سوال: برنامه ای به زبان جاوا بنویسید که یک متد داشته باشد که عملیات زیر را انجام دهد:
تبدیل مبنای 10 به عدد باینری(دودویی)
به این صورت که متد ما یک پارامتر ورودی داره و با صدا زدن و ست کردن متد تبدیل رو انجام
بده!!
🔵مثال: فرض کنید عدد ما در مبنای 10 این مقدار 693 باشد وقتی به مبنای 2 ببریمش می شود
1010110101 یا عدد 4 وقتی به مبنای 2 برده شود میشود 100
.....................
✅پاسخ:
package tutorial;
import java.util.Scanner;
public class Example2 {
public String decimalToBainary(int m) {
String s = new String();
while (m >= 2) {
if (m % 2 == 0) {
s += "0";
m = m / 2;
} else if (m % 2 == 1) {
s += "1";
m = m / 2;
}
}
s += "" + m;
String str = new String();
for (int i = s.length() - 1; i >= 0; i--) {
str += s.substring(i, i + 1);
}
return str;
}
public static void main(String[] args) {
Example2 t = new Example2();
System.out.println(t.decimalToBainary(7));
}
}
...............................
⬇️خروجی:
خروجی این برنامه در محیط کنسول بعد از کامپایل و اجرای برنامه بصورت زیر است:
111
نکته: عدد 111 یک عدد باینری یا دودویی هستش که تنها برای ماشین قابل فهم می باشد و با عدد صد و یازده اشتباه نگیریدش
..................................
تبدیل مبنای 10 به عدد باینری(دودویی)
به این صورت که متد ما یک پارامتر ورودی داره و با صدا زدن و ست کردن متد تبدیل رو انجام
بده!!
🔵مثال: فرض کنید عدد ما در مبنای 10 این مقدار 693 باشد وقتی به مبنای 2 ببریمش می شود
1010110101 یا عدد 4 وقتی به مبنای 2 برده شود میشود 100
.....................
✅پاسخ:
package tutorial;
import java.util.Scanner;
public class Example2 {
public String decimalToBainary(int m) {
String s = new String();
while (m >= 2) {
if (m % 2 == 0) {
s += "0";
m = m / 2;
} else if (m % 2 == 1) {
s += "1";
m = m / 2;
}
}
s += "" + m;
String str = new String();
for (int i = s.length() - 1; i >= 0; i--) {
str += s.substring(i, i + 1);
}
return str;
}
public static void main(String[] args) {
Example2 t = new Example2();
System.out.println(t.decimalToBainary(7));
}
}
...............................
⬇️خروجی:
خروجی این برنامه در محیط کنسول بعد از کامپایل و اجرای برنامه بصورت زیر است:
111
نکته: عدد 111 یک عدد باینری یا دودویی هستش که تنها برای ماشین قابل فهم می باشد و با عدد صد و یازده اشتباه نگیریدش
..................................
✳️صورت سوال: برنامه ای به زبان جاوا بنویسید که یک متد داشته باشد که عملیات زیر را انجام دهد:
تبدیل عدد باینری به مبنای 10(تبدیل از مبنای(binary (2 به 10)
به این صورت که متد ما یک پارامتر ورودی داره و با صدا زدن و ست کردن متد تبدیل رو انجام
بده!!
مثال: فرض کنید عدد باینری ما 1010110101 این مقدار باشد وقتی به مبنای 10 ببریمش می شود
693 یا عدد دودویی 100 وقتی به مبنای 10 برده شود میشود 4
...................................................................................................................................................................................................
✅پاسخ:
package tutorial;
import java.util.Scanner;
public class Example1 {
public int bainaryToDecimal(int a) {
String b = "" + a;
Integer in = new Integer("0");
int j = 0;
int sum = 0;
for (int i = b.length() - 1; i >= 0; i--) {
int d = Integer.parseInt(b.substring(i, i + 1));
sum += (int) (Math.pow(2, j) * d);
j++;
}
return sum;
}
public static void main(String[] args) {
Example1 t = new Example1();
System.out.println(t.bainaryToDecimal(111));
}
}
........................................................................................................................................................
⬇️خروجی: خروجی این برنامه در محیط کنسول بعد از کامپایل و اجرای برنامه بصورت زیر است:
7
تبدیل عدد باینری به مبنای 10(تبدیل از مبنای(binary (2 به 10)
به این صورت که متد ما یک پارامتر ورودی داره و با صدا زدن و ست کردن متد تبدیل رو انجام
بده!!
مثال: فرض کنید عدد باینری ما 1010110101 این مقدار باشد وقتی به مبنای 10 ببریمش می شود
693 یا عدد دودویی 100 وقتی به مبنای 10 برده شود میشود 4
...................................................................................................................................................................................................
✅پاسخ:
package tutorial;
import java.util.Scanner;
public class Example1 {
public int bainaryToDecimal(int a) {
String b = "" + a;
Integer in = new Integer("0");
int j = 0;
int sum = 0;
for (int i = b.length() - 1; i >= 0; i--) {
int d = Integer.parseInt(b.substring(i, i + 1));
sum += (int) (Math.pow(2, j) * d);
j++;
}
return sum;
}
public static void main(String[] args) {
Example1 t = new Example1();
System.out.println(t.bainaryToDecimal(111));
}
}
........................................................................................................................................................
⬇️خروجی: خروجی این برنامه در محیط کنسول بعد از کامپایل و اجرای برنامه بصورت زیر است:
7
پروژه پازل به زبان جاوا (2).zip
637 KB
سورس کد پازل به زبان جاوا
برای استفاده ی شما علاقه مندان (;
برای استفاده ی شما علاقه مندان (;
جاوا به زبان ساده ۲۴
درست کردن متد با پارامتر ها
تو این قسمت از اموزش میخوایم به کار گیری متد ها + پارامتر ها صحب کنیم
توجه: تو این اموزش از دو کلاس استفاده میشه پس باید دو کلاس متفاوت ولی توی یک پروژه بسازید
فرض نام کلاس اول NewClass و فرض نام کلاس دوم Parsa
NewClass:کلاسی هست که متد ها و پارمتر هارو توش تعریف خواهیم کرد
Parsa:کلاسی هست که دارای متد Main هست و کلاس بالایی رو توش فراخونی خواهیم کرد
public class NewClass
{
public void simpleMessage(String name)
{
System.out.println("hello " + name);
}
}
name: پارامتره...از نوع String
چرا String?
خب name عدد نیستش که دوستان
خب حالا میریم توی متد Main
یادتونه گفتم چطوری از کاربرتون input بگیرین؟
import java.util.Scanner;
public class Parsa
{
public static void main (String[] args)
{
Scanner input = new Scanner (System.in);
NewClass object = new NewClass();
System.out.println("Esmet ro vared kon: ");
String name = input.nextLine();
object simpleMessage(name);
}
}
خروجی :
Esmet ro vared kon :
Parsa
hello Parsa
public void simpleMessage(String name):اسم متدمون رو simpleMessage گذاشتیم
و طوری تایین کردیم متد رو که چیزیو برگشت نده..هرگاه void داشته باشه چیزیو برگشت نمیده
String name: اسم پارامتره ماست
Scanner input = new Scanner (System.in); : یه شی از اسکنرمون ساختیم
NewClass object = new NewClass();: کلاس NewClass رو فراخونی کردیم و شی ای به نام object ازش ساختیم
String name = input.nextLine();: یه استرینگ به اسم name ساختیم و طوری تعریفش کردیم که بره لاین بعدی
و در اخر
object simpleMessage(name);: این متد هم از پارامتر name توی کلاس NewClass xاستفاده میکنه
سوالی بود :@prsw16
درست کردن متد با پارامتر ها
تو این قسمت از اموزش میخوایم به کار گیری متد ها + پارامتر ها صحب کنیم
توجه: تو این اموزش از دو کلاس استفاده میشه پس باید دو کلاس متفاوت ولی توی یک پروژه بسازید
فرض نام کلاس اول NewClass و فرض نام کلاس دوم Parsa
NewClass:کلاسی هست که متد ها و پارمتر هارو توش تعریف خواهیم کرد
Parsa:کلاسی هست که دارای متد Main هست و کلاس بالایی رو توش فراخونی خواهیم کرد
public class NewClass
{
public void simpleMessage(String name)
{
System.out.println("hello " + name);
}
}
name: پارامتره...از نوع String
چرا String?
خب name عدد نیستش که دوستان
خب حالا میریم توی متد Main
یادتونه گفتم چطوری از کاربرتون input بگیرین؟
import java.util.Scanner;
public class Parsa
{
public static void main (String[] args)
{
Scanner input = new Scanner (System.in);
NewClass object = new NewClass();
System.out.println("Esmet ro vared kon: ");
String name = input.nextLine();
object simpleMessage(name);
}
}
خروجی :
Esmet ro vared kon :
Parsa
hello Parsa
public void simpleMessage(String name):اسم متدمون رو simpleMessage گذاشتیم
و طوری تایین کردیم متد رو که چیزیو برگشت نده..هرگاه void داشته باشه چیزیو برگشت نمیده
String name: اسم پارامتره ماست
Scanner input = new Scanner (System.in); : یه شی از اسکنرمون ساختیم
NewClass object = new NewClass();: کلاس NewClass رو فراخونی کردیم و شی ای به نام object ازش ساختیم
String name = input.nextLine();: یه استرینگ به اسم name ساختیم و طوری تعریفش کردیم که بره لاین بعدی
و در اخر
object simpleMessage(name);: این متد هم از پارامتر name توی کلاس NewClass xاستفاده میکنه
سوالی بود :@prsw16
جاوا به زبان ساده ۲۶:
گرافیک
import java.awt.BorderLayout;
import javax.swing. *;
public class Hello extends JFrame {
public Hello() {
super("hello");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
add(new JLabel("Hello, world!"));
pack();
}
public static void main(String[] args) {
new Hello().setVisible(true);
}
}
اولین جملهٔ import کامپایلر جاوا را هدایت میکند تا کلاس Borderlayout را از بستهٔ java.awt در جاوا به کامپایل اضافه کند؛ و import دوم همهٔ کلاسهای عمومی و واسط آنها را از بستهٔ javax.swing اضافه میکند. کلاس Hello کلاس Jframe را توسعه میدهد. کلاس Jframe یک پنجره با میلهٔ عنوان و کنترل بستن است.
زمانی که برنامه آغاز میشود، تابع main با JVM صدا زده میشود. این یک نمونهٔ جدید از کلاس Hello را ایجاد کرده و با صدا زدن تابع setvisible(boolean) با مقدار true نمایش داده میشود.
گرافیک
import java.awt.BorderLayout;
import javax.swing. *;
public class Hello extends JFrame {
public Hello() {
super("hello");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setLayout(new BorderLayout());
add(new JLabel("Hello, world!"));
pack();
}
public static void main(String[] args) {
new Hello().setVisible(true);
}
}
اولین جملهٔ import کامپایلر جاوا را هدایت میکند تا کلاس Borderlayout را از بستهٔ java.awt در جاوا به کامپایل اضافه کند؛ و import دوم همهٔ کلاسهای عمومی و واسط آنها را از بستهٔ javax.swing اضافه میکند. کلاس Hello کلاس Jframe را توسعه میدهد. کلاس Jframe یک پنجره با میلهٔ عنوان و کنترل بستن است.
زمانی که برنامه آغاز میشود، تابع main با JVM صدا زده میشود. این یک نمونهٔ جدید از کلاس Hello را ایجاد کرده و با صدا زدن تابع setvisible(boolean) با مقدار true نمایش داده میشود.
تست برنامههای نوشته شده توسط جاوا
جاوا امروزه به عنوان یک زبان پر کاربرد به خصوص در برنامههای کاربردی تجاری مطرح است و بسیاری از سازمانها و شرکتهای از این زبان و تکنولوژیهای مربوط به آن استفاده میکنند. ابزارهای زیادی برای تست برنامههای نوشته شده توسط جاوا مورد استفاده قرار میگیرند. برای مثال: در جاوا به دلیل مدیریت حافظه توسط Garbage collection ممکن است به دلیل نوشتن غیر استاندارد برنامه در حافظه نشتی داشته باشیم (memory leakage)که این امر سبب میشود حافظه گرفته شده آزاد نشود و با پر شدن حافظه برنامه دچار خلل شود. برای حل این مشکل و سایر مشکلات نیاز به تست نرمافزارهای نوشته شده در جاوا هستیم. با بزرگ شدن حجم نرمافزار تست آن نیز سختتر میشود. بهتر از قبل از نوشتن برنامههای تجاری بزرگ به تست و نحوه تضمین کیفیت آن هم فکر شود.
جاوا امروزه به عنوان یک زبان پر کاربرد به خصوص در برنامههای کاربردی تجاری مطرح است و بسیاری از سازمانها و شرکتهای از این زبان و تکنولوژیهای مربوط به آن استفاده میکنند. ابزارهای زیادی برای تست برنامههای نوشته شده توسط جاوا مورد استفاده قرار میگیرند. برای مثال: در جاوا به دلیل مدیریت حافظه توسط Garbage collection ممکن است به دلیل نوشتن غیر استاندارد برنامه در حافظه نشتی داشته باشیم (memory leakage)که این امر سبب میشود حافظه گرفته شده آزاد نشود و با پر شدن حافظه برنامه دچار خلل شود. برای حل این مشکل و سایر مشکلات نیاز به تست نرمافزارهای نوشته شده در جاوا هستیم. با بزرگ شدن حجم نرمافزار تست آن نیز سختتر میشود. بهتر از قبل از نوشتن برنامههای تجاری بزرگ به تست و نحوه تضمین کیفیت آن هم فکر شود.
جاوا به زبان ساده ۲۷:
import java.io. *;
import javax.servlet. *;
public class Hello extends GenericServlet {
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
final PrintWriter pw = response.getWriter();
pw.println("Hello, world!");
pw.close();
}
}
واژهٔ import کامپایلر جاوا را هدایت میکند که تمام کلاسهای عمومی و واسطها را از بستههای java.io وjava.servlet را در کامپایل وارد کند.
کلاس Hello کلاس Genericservlet را توسعه میدهد. کلاس Genericservlet واسطی برای سرور فراهم میکند تا درخواست را به servlet بفرستد و چرخهٔ زندگی servlet را کنترل کند.
import java.io. *;
import javax.servlet. *;
public class Hello extends GenericServlet {
public void service(ServletRequest request, ServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
final PrintWriter pw = response.getWriter();
pw.println("Hello, world!");
pw.close();
}
}
واژهٔ import کامپایلر جاوا را هدایت میکند که تمام کلاسهای عمومی و واسطها را از بستههای java.io وjava.servlet را در کامپایل وارد کند.
کلاس Hello کلاس Genericservlet را توسعه میدهد. کلاس Genericservlet واسطی برای سرور فراهم میکند تا درخواست را به servlet بفرستد و چرخهٔ زندگی servlet را کنترل کند.
JSP
صفحهٔ سرور جاوا قسمتی از سرور javaEE است که پاسخ تولید میکند. نوعاً صفحات HTML به درخواستهای HTTP از مشتری.JSPها کد جاوا در صفحهٔ HTML را با استفاده از حائل <%and%> اضافه میکنند.JSP به javaservlet کامپایل میشود.
صفحهٔ سرور جاوا قسمتی از سرور javaEE است که پاسخ تولید میکند. نوعاً صفحات HTML به درخواستهای HTTP از مشتری.JSPها کد جاوا در صفحهٔ HTML را با استفاده از حائل <%and%> اضافه میکنند.JSP به javaservlet کامپایل میشود.
شرکت سان میکروسیستم، ۴ نوع ویرایش از کاربردهای مختلف جاوا را ارائه دادهاست:
Java card for smartcard
JavaME
JavaSE
JavaEE
Java card for smartcard
JavaME
JavaSE
JavaEE
جاوا به زبان ساده 28
، ما در این جلسه قصد داریم چند String را با استفاده از متد ()concat در جاوا به
هم وصل کنیم.
public String concat(String str)
این متد )String)رشته str را به انتهای String( رشته ای( که این متد را صدا زده است وصل می کند.
برای مثال فرض کنید یک String با نام s داشته باشیم:
String s="java";
حاال قصد داریم )String)رشته "pro "را به انتهای )String)رشته s وصل کنیم، برای این کار از متد concat
استفاده می کنیم:
s=s.concat("pro");
با این کار مقدار )String)رشته s از "java "به "javapro "تغییر می کند.
حتما براتون سوال پیش اومده چرا رشته s همزمان که متد concat را صدا زده است سمت چپ مساوی نیز
قرار گرفته است؟!!
پاسخ:
دستور ("pro("concat.s رشته "pro "را به رشته s وصل می کند ، حاال برای این که مقدار قبلی
رشته s جای خود را به مقدار جدید بدهد باید با قرار دادن مساوی ، مقدار جدید را در داخل رشته s
بریزیم.
برای این که چند )String)رشته را به یک رشته وصل کنیم باز می توانیم از متد concat استفاده کنیم:
برای مثال فرض کنید یک String با نام s داشته باشیم:
String s="java"؛
، ما در این جلسه قصد داریم چند String را با استفاده از متد ()concat در جاوا به
هم وصل کنیم.
public String concat(String str)
این متد )String)رشته str را به انتهای String( رشته ای( که این متد را صدا زده است وصل می کند.
برای مثال فرض کنید یک String با نام s داشته باشیم:
String s="java";
حاال قصد داریم )String)رشته "pro "را به انتهای )String)رشته s وصل کنیم، برای این کار از متد concat
استفاده می کنیم:
s=s.concat("pro");
با این کار مقدار )String)رشته s از "java "به "javapro "تغییر می کند.
حتما براتون سوال پیش اومده چرا رشته s همزمان که متد concat را صدا زده است سمت چپ مساوی نیز
قرار گرفته است؟!!
پاسخ:
دستور ("pro("concat.s رشته "pro "را به رشته s وصل می کند ، حاال برای این که مقدار قبلی
رشته s جای خود را به مقدار جدید بدهد باید با قرار دادن مساوی ، مقدار جدید را در داخل رشته s
بریزیم.
برای این که چند )String)رشته را به یک رشته وصل کنیم باز می توانیم از متد concat استفاده کنیم:
برای مثال فرض کنید یک String با نام s داشته باشیم:
String s="java"؛
ادامه جاوا 28
حاال قصد داریم رشته های "pro "." ، "و "ir "را به رشته s وصل کنیم برای اینکار به صورت زیر عمل می
کنیم:
s = s.concat("pro").concat(".").concat("ir");
با دستور باال مقدار رشته s از "java "به ir.javapro تغییر مقدار پیدا میکند.
مثال(Example:(
در این مثال ما از دو روش برای اتصال رشته ها به یکدیگر استفاده کرده ایم:
package javalike;
public class ConcatenationExample {
public static void main(String args[]) {
//One way of doing concatenation
String str1 = "Welcome";
str1 = str1.concat(" to ");
str1 = str1.concat(" String handling ");
System.out.println(str1);
// Other way of doing concatenation in one line
String str2 = "This";
str2 = str2.concat(" is").concat(" just a").concat(" String");
System.out.println(str2);
}
}
خروجی(output: (
Welcome to String handling
This is just a String
حاال قصد داریم رشته های "pro "." ، "و "ir "را به رشته s وصل کنیم برای اینکار به صورت زیر عمل می
کنیم:
s = s.concat("pro").concat(".").concat("ir");
با دستور باال مقدار رشته s از "java "به ir.javapro تغییر مقدار پیدا میکند.
مثال(Example:(
در این مثال ما از دو روش برای اتصال رشته ها به یکدیگر استفاده کرده ایم:
package javalike;
public class ConcatenationExample {
public static void main(String args[]) {
//One way of doing concatenation
String str1 = "Welcome";
str1 = str1.concat(" to ");
str1 = str1.concat(" String handling ");
System.out.println(str1);
// Other way of doing concatenation in one line
String str2 = "This";
str2 = str2.concat(" is").concat(" just a").concat(" String");
System.out.println(str2);
}
}
خروجی(output: (
Welcome to String handling
This is just a String
جاوا به زبان ساده 29
متد ()compareToIgnoreCase شبیه متد ()compareTo یک String(رشته( را از نظر لغوی مقایسه
می کند. تنها تفاوت آنها این است که متد ()compareToIgnoreCase هنگام مقایسه دو String(رشته(
حروف بزرگ)uppercase )یا کوچک)lowercase )را نادیده می گیرد. به عبارت دیگر حروف بزرگ یا
کوچک تاثیری در مقایسه دو رشته از طریق متد ()compareToIgnoreCase ندارد.
این متد همانند متد ()compareTo دو String(رشته( را بر اساس ارزش مقدار یونیکد)Unicode )هر
کاراکتر)character )مقایسه می کند.
هر کاراکتر یک مقدار عددی دارد که به آن یونیکد)Unicode )می گویند.
مثال یونیکد کاراکتر 'a 'برابر 79 ، کاراکتر 'A 'برابر 56 می باشد.خب حروف کوچک و بزرگ در مقایسه دو رشته
با هم از طریق ()compareTo تاثیر گذار است:
فرض کنید دو رشته s1 و s2 داشته باشیم:
String s1="AA";
String s2="aa";
همان طور که مشاهده میکنید هر دو رشته s1 و s2 دارای دو حرف مشابه می باشند با این تفاوت که S1 دارای
حروف A بزرگ و S2 دارای حروف a کوچک می باشند.
اگر دو رشته s1 وs2 را با متد ()compareTo مقایسه کنید رشته s1 کوچک تر رشته s2 می باشد چرا که
یونیکد حروف a برابر 79 و یونیکد حرف A برابر 65 می باشد.
حال اگر دو رشته S1 و S2 را از طریق متد ()compareToIgnoreCase باهم مقایسه کنید، چون حروف
بزرگ یا کوچک کاراکترهای هر دو رشته در مقایسه این متد تاثیری ندارد ، هر دو رشته S1 و S2 باهم برابر
خواهند بود.
compareToIgnoreCase(String str)
متد ()compareToIgnoreCase شبیه متد ()compareTo یک String(رشته( را از نظر لغوی مقایسه
می کند. تنها تفاوت آنها این است که متد ()compareToIgnoreCase هنگام مقایسه دو String(رشته(
حروف بزرگ)uppercase )یا کوچک)lowercase )را نادیده می گیرد. به عبارت دیگر حروف بزرگ یا
کوچک تاثیری در مقایسه دو رشته از طریق متد ()compareToIgnoreCase ندارد.
این متد همانند متد ()compareTo دو String(رشته( را بر اساس ارزش مقدار یونیکد)Unicode )هر
کاراکتر)character )مقایسه می کند.
هر کاراکتر یک مقدار عددی دارد که به آن یونیکد)Unicode )می گویند.
مثال یونیکد کاراکتر 'a 'برابر 79 ، کاراکتر 'A 'برابر 56 می باشد.خب حروف کوچک و بزرگ در مقایسه دو رشته
با هم از طریق ()compareTo تاثیر گذار است:
فرض کنید دو رشته s1 و s2 داشته باشیم:
String s1="AA";
String s2="aa";
همان طور که مشاهده میکنید هر دو رشته s1 و s2 دارای دو حرف مشابه می باشند با این تفاوت که S1 دارای
حروف A بزرگ و S2 دارای حروف a کوچک می باشند.
اگر دو رشته s1 وs2 را با متد ()compareTo مقایسه کنید رشته s1 کوچک تر رشته s2 می باشد چرا که
یونیکد حروف a برابر 79 و یونیکد حرف A برابر 65 می باشد.
حال اگر دو رشته S1 و S2 را از طریق متد ()compareToIgnoreCase باهم مقایسه کنید، چون حروف
بزرگ یا کوچک کاراکترهای هر دو رشته در مقایسه این متد تاثیری ندارد ، هر دو رشته S1 و S2 باهم برابر
خواهند بود.
compareToIgnoreCase(String str)
جاوا به زبان ساده ۳۰
گرفتن ورودی از کاربر (input)
impot javax.swing.JOptionPane;
public class NameDialog
{
public static void main (String[] args)
{
String name = JOptionPane.showInputDialog("Whats your name ?");
String message = String.format("Welcom, %s, to Java Programming!", name);
JOptionPane.showMessageDialog(null, message);
}
}
یک پنجره باز میشه که مینویسه whats your name
و یک کادر داره که نامتون رو مینویسید بعد نامتون رو با پیامه welcom to java Programming میندازه بیرون
showInputDialog
از متد دریافت ورودی از کاربر توی کلاس JOptionPane استفاده میکنه ..و از یک کادر ورودی خیلی ساده حاوی یک اعلان و یک فیلد رای وارد کردن متن که به جهبه متن هم معروف هست استفاده کرده
متد استاتیک format
از متد استاتیکformat برای برگشت دادن یک رشته که حاوی پیام خوشامد گویی به همراه نام تایپ شده از طرف کاربر هست استفاده شده
درکل متد format شبیه متدSystem.out.printf هست
گرفتن ورودی از کاربر (input)
impot javax.swing.JOptionPane;
public class NameDialog
{
public static void main (String[] args)
{
String name = JOptionPane.showInputDialog("Whats your name ?");
String message = String.format("Welcom, %s, to Java Programming!", name);
JOptionPane.showMessageDialog(null, message);
}
}
یک پنجره باز میشه که مینویسه whats your name
و یک کادر داره که نامتون رو مینویسید بعد نامتون رو با پیامه welcom to java Programming میندازه بیرون
showInputDialog
از متد دریافت ورودی از کاربر توی کلاس JOptionPane استفاده میکنه ..و از یک کادر ورودی خیلی ساده حاوی یک اعلان و یک فیلد رای وارد کردن متن که به جهبه متن هم معروف هست استفاده کرده
متد استاتیک format
از متد استاتیکformat برای برگشت دادن یک رشته که حاوی پیام خوشامد گویی به همراه نام تایپ شده از طرف کاربر هست استفاده شده
درکل متد format شبیه متدSystem.out.printf هست
اموزش نصب دو تلگرام در لینوکس
درود، ابتدا تلگرام رو از مخازن رسمی با دستور زیر نصب کن.
کد: [انتخاب]
sudo apt install telegram-desktop
و بعد یک دایرکتوری برای ذخیر دیتاهای تلگرام دوم بساز
کد:
mkdir ~/teleg
و بعد با دستور زیر تلگرام رو اجرا کن.
کد:
telegram-desktop -many -workdir ~/teleg
موفق باشید.
درود، ابتدا تلگرام رو از مخازن رسمی با دستور زیر نصب کن.
کد: [انتخاب]
sudo apt install telegram-desktop
و بعد یک دایرکتوری برای ذخیر دیتاهای تلگرام دوم بساز
کد:
mkdir ~/teleg
و بعد با دستور زیر تلگرام رو اجرا کن.
کد:
telegram-desktop -many -workdir ~/teleg
موفق باشید.
ارایه ها
جاوا به زبان ساده ۳۱
int parsa[] = new int[3]
int [0] = 23;
int [1] = 30;
int[2] = 89;
System.out.println(parsa[0];
output:
33
شاید به فارسی بگم راحت تر متوجه شید
int parsa[] = new int [3];
[]= نماد ارایه ها...با این نماد جاوا میفهمه دارید از ارایه ها استفاده میکنید
new = برای تعریف متغیر هست
int= نوع متغیر..میتونهdouble یا هرچیزه دیگه ای باشه
[3] = تعداد ارایه هاتون
int [0] = 23;
int [1] = 30;
int[2] = 89;
اینم سه تا ارایه ها.کامپیوتر از ۰ شروع میکنه برای همین ۲ همون ۳ محسوب میشه
خب این روش برای ارایه ها هست که به درد عمتون میخوره
چرا؟چچون که اگه توی [] صد بزاریم میخوایم صدتا ارایه تعریف کنیم بعد صدتاشو پرینت کنیم؟
خب ما چیکار میکنیم
میایم:
int parsa [] = {2,3,4,7,3,9,95,67};
System.out.println(amir[2]);
output:
4
2 = عدد ۰
3 = عدد اول
4 = عدد دوم
به همین دلیل ۴ رو چاپ کرد چون کامپیوتر از ۰ شروع میکنه
این روش خیلی راحت تر از روش بالایی بود درسته؟
جاوا به زبان ساده ۳۱
int parsa[] = new int[3]
int [0] = 23;
int [1] = 30;
int[2] = 89;
System.out.println(parsa[0];
output:
33
شاید به فارسی بگم راحت تر متوجه شید
int parsa[] = new int [3];
[]= نماد ارایه ها...با این نماد جاوا میفهمه دارید از ارایه ها استفاده میکنید
new = برای تعریف متغیر هست
int= نوع متغیر..میتونهdouble یا هرچیزه دیگه ای باشه
[3] = تعداد ارایه هاتون
int [0] = 23;
int [1] = 30;
int[2] = 89;
اینم سه تا ارایه ها.کامپیوتر از ۰ شروع میکنه برای همین ۲ همون ۳ محسوب میشه
خب این روش برای ارایه ها هست که به درد عمتون میخوره
چرا؟چچون که اگه توی [] صد بزاریم میخوایم صدتا ارایه تعریف کنیم بعد صدتاشو پرینت کنیم؟
خب ما چیکار میکنیم
میایم:
int parsa [] = {2,3,4,7,3,9,95,67};
System.out.println(amir[2]);
output:
4
2 = عدد ۰
3 = عدد اول
4 = عدد دوم
به همین دلیل ۴ رو چاپ کرد چون کامپیوتر از ۰ شروع میکنه
این روش خیلی راحت تر از روش بالایی بود درسته؟
جاوا به زبان ساده 32
اموزش مباحث Gui(گرافیک)
package test.project;
import javax.swing.JOptionPane;
public class Guiplus {
public static void main (String[] args)
{
String firstnumber = JOptionPane.showInputDialog(null, "ENTER FIRST INTEGER ", JOptionPane.QUESTION_MESSAGE);
String secondnumber = JOptionPane.showInputDialog(null, "ENTER SECOND INTEGER ", JOptionPane.QUESTION_MESSAGE);
int number1 = Integer.parseInt(firstnumber);
int number2 = Integer.parseInt(secondnumber);
int sum = number1 + number2;
JOptionPane.showMessageDialog(null, "THE SUM IS : " + sum,
"SUM OF TWO INTEGERS", JOptionPane.PLAIN_MESSAGE);
}
}
خب این کلاس چیکار میکنه :
میاد یه ورودی از کاربر میگیره و توی رشته ی firstnumber ذخیر میکنه(پیام ورودی از کلاس JOptionPane. میباشد)
عدد دوم رو هم میگیره و توی رشته ی secondnumber ذخیره میکنه
بعدش میاد این دو رشته رو convert میکنه به int
بعد هم یه int تعریف میکنه که اون دوتا ورودی رو از کاربر گرفته ججمع کنه
بعدشم توی یک JOptionPane. بندازه بیرون
نکات کلیدی :
JOptionPane.showMessageDialog(null, "THE SUM IS : " + sum,
"SUM OF TWO INTEGERS", JOptionPane.PLAIN_MESSAGE);
SUM OF TWO INTEGERS:
title برای کادر JOptionPane هست
null:
هنگامی که کلاس اجرا میشود
وقتی که برنامه ورودی (INPUT) از کاربر میگیره مقدار null رو برگگشت میده و اگه مقداری منفی تایپ کنه یا برو روی cancel کلیک کنه خطای منطقی رخ میده
JOptionPane.showMessageDialog(null, "THE SUM IS : " + sum,
"SUM OF TWO INTEGERS", JOptionPane.PLAIN_MESSAGE);
PLAIN_MESSAGE:
اگه دقت کنید توی JOptionPane های بالاهم ازین متد استفاده کردیم
مثال
QUESTION_MESSAGE
PLAIN_MESSAGE
خب این متد ها برای چی استفاده میشه؟
ببینید ..اینا ایکون های پیشفرض برای کادر تبادلی ورودی هستن
که در این جا بهشون اشاره میکنیم
PLAIN_MESSAGE= کادری که حاوی پیغام است اما فاقد ایکون میباشد
QUESTION_MESSAGE = کادری که حالت پرسشی از کاربر دارد.مکعمولا این کادر نیازمند پاسخ هست
ERROR_MESSAGE: برای نشان خطا به کاربره دیگه
INFORMATION_MESSAGE = هدفش اطلاع رسانی به کاربره
WARNING_MESSAGE = برای هشدار دادن در مورد مسعله ای هست
تبدیل رشته به مقادیر صحیح
STRING to INT
برای انجام محاسبات باید رشته هایی که کاربر وارد کرده به مقادیر صحیح تبدیل شد
int = مقادیر صحیح
String= رشته
متد استاتیک parselnt
مبادرت به تبدیل رشته به صحیح
از کلاس integer
میکند
showMessageDialog
:
برای نشون دادن یک پیغام هست
showInputDialog
l
برای گرفتن ورودی از کاربر استفاده میکنه
شاید سوالتون این باشه که اصلا چرا از اول به جای رشته از int استفاده نکنیم؟
خب ببینید دوستان showInputDialog برو خلاف Scanner فقط میتونه مقدار رشته رو به عنوان ورودی قبول کنه
این حالت برای اکثر کامپونت های GUI صادقه.به لحاظ تکنیکی, کاربر میتونه هرچیزی رو در جعبه متن ورودی تایپ کنه
نکته:
به کادر های نمایش در امده توسط JOptionPane. کادر های modal میگویند.
نتیجه گیری:
کلاس JOptipnPane و اکثر کامپونت های Gui بر خلاف اسکنر فقط مقدار رشته رو قبول میکنند!
اموزش مباحث Gui(گرافیک)
package test.project;
import javax.swing.JOptionPane;
public class Guiplus {
public static void main (String[] args)
{
String firstnumber = JOptionPane.showInputDialog(null, "ENTER FIRST INTEGER ", JOptionPane.QUESTION_MESSAGE);
String secondnumber = JOptionPane.showInputDialog(null, "ENTER SECOND INTEGER ", JOptionPane.QUESTION_MESSAGE);
int number1 = Integer.parseInt(firstnumber);
int number2 = Integer.parseInt(secondnumber);
int sum = number1 + number2;
JOptionPane.showMessageDialog(null, "THE SUM IS : " + sum,
"SUM OF TWO INTEGERS", JOptionPane.PLAIN_MESSAGE);
}
}
خب این کلاس چیکار میکنه :
میاد یه ورودی از کاربر میگیره و توی رشته ی firstnumber ذخیر میکنه(پیام ورودی از کلاس JOptionPane. میباشد)
عدد دوم رو هم میگیره و توی رشته ی secondnumber ذخیره میکنه
بعدش میاد این دو رشته رو convert میکنه به int
بعد هم یه int تعریف میکنه که اون دوتا ورودی رو از کاربر گرفته ججمع کنه
بعدشم توی یک JOptionPane. بندازه بیرون
نکات کلیدی :
JOptionPane.showMessageDialog(null, "THE SUM IS : " + sum,
"SUM OF TWO INTEGERS", JOptionPane.PLAIN_MESSAGE);
SUM OF TWO INTEGERS:
title برای کادر JOptionPane هست
null:
هنگامی که کلاس اجرا میشود
وقتی که برنامه ورودی (INPUT) از کاربر میگیره مقدار null رو برگگشت میده و اگه مقداری منفی تایپ کنه یا برو روی cancel کلیک کنه خطای منطقی رخ میده
JOptionPane.showMessageDialog(null, "THE SUM IS : " + sum,
"SUM OF TWO INTEGERS", JOptionPane.PLAIN_MESSAGE);
PLAIN_MESSAGE:
اگه دقت کنید توی JOptionPane های بالاهم ازین متد استفاده کردیم
مثال
QUESTION_MESSAGE
PLAIN_MESSAGE
خب این متد ها برای چی استفاده میشه؟
ببینید ..اینا ایکون های پیشفرض برای کادر تبادلی ورودی هستن
که در این جا بهشون اشاره میکنیم
PLAIN_MESSAGE= کادری که حاوی پیغام است اما فاقد ایکون میباشد
QUESTION_MESSAGE = کادری که حالت پرسشی از کاربر دارد.مکعمولا این کادر نیازمند پاسخ هست
ERROR_MESSAGE: برای نشان خطا به کاربره دیگه
INFORMATION_MESSAGE = هدفش اطلاع رسانی به کاربره
WARNING_MESSAGE = برای هشدار دادن در مورد مسعله ای هست
تبدیل رشته به مقادیر صحیح
STRING to INT
برای انجام محاسبات باید رشته هایی که کاربر وارد کرده به مقادیر صحیح تبدیل شد
int = مقادیر صحیح
String= رشته
متد استاتیک parselnt
مبادرت به تبدیل رشته به صحیح
از کلاس integer
میکند
showMessageDialog
:
برای نشون دادن یک پیغام هست
showInputDialog
l
برای گرفتن ورودی از کاربر استفاده میکنه
شاید سوالتون این باشه که اصلا چرا از اول به جای رشته از int استفاده نکنیم؟
خب ببینید دوستان showInputDialog برو خلاف Scanner فقط میتونه مقدار رشته رو به عنوان ورودی قبول کنه
این حالت برای اکثر کامپونت های GUI صادقه.به لحاظ تکنیکی, کاربر میتونه هرچیزی رو در جعبه متن ورودی تایپ کنه
نکته:
به کادر های نمایش در امده توسط JOptionPane. کادر های modal میگویند.
نتیجه گیری:
کلاس JOptipnPane و اکثر کامپونت های Gui بر خلاف اسکنر فقط مقدار رشته رو قبول میکنند!
جاوا به زبان ساده 33
برابری در رشته ها
وقتی میخواستیم شرط بزاریم که مثلا مقدار صحیحمون برابر فلان بود فلانو نمایش بده
int i = 2;
if (i == 2)
{
System.out.println("عدد برابر دو است");
}
اما برای شرط گذاری برای رشته نمیتونیم اینطوری عمل کنیم
String b = "learnjava";
if (b == learnjava)
{
System.out.println("learnJava");
}
باید از متد equals استفاده کنیم
خب ینی چطوری؟
String C = "learnjava";
if ("learnjava".equals(C))
{
System.out.println("learnjava");
}
نتیجه گیری:
شرط ها و اپراتور ها فقط برای مقادیر عددی مورد استفاده قرار میگیرند و برای برابر رشته ها از متد equals استفاده میشود
برابری در رشته ها
وقتی میخواستیم شرط بزاریم که مثلا مقدار صحیحمون برابر فلان بود فلانو نمایش بده
int i = 2;
if (i == 2)
{
System.out.println("عدد برابر دو است");
}
اما برای شرط گذاری برای رشته نمیتونیم اینطوری عمل کنیم
String b = "learnjava";
if (b == learnjava)
{
System.out.println("learnJava");
}
باید از متد equals استفاده کنیم
خب ینی چطوری؟
String C = "learnjava";
if ("learnjava".equals(C))
{
System.out.println("learnjava");
}
نتیجه گیری:
شرط ها و اپراتور ها فقط برای مقادیر عددی مورد استفاده قرار میگیرند و برای برابر رشته ها از متد equals استفاده میشود