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



@parsa8113
@bardiademon
Download Telegram
تولید 5 عدد رندم(تصادفی) بین 1 تا 100 در جاوا
پاسخ:
class RandomDemo{

public static void main(String args[]){

for(int i=1;i<=5;i++){

System.out.println((int)(Math.random()*100));

}

}

}
.................
#تمرین_جاوا
♦️شبه کد زیر را در نظر بگیرید:

if (aNumber >= 0)
if (aNumber == 0)
System.out.println("first string");
else
System.out.println("second string");
System.out.println("third string");

..............................
✳️سوال اول- اگر مقدار aNumber برابر عدد 3 بود خروجی چه میشد؟

حل:
second string
third string
#پرسش_و_پاسخ_جاوا
تعریف وراثت؟
فرآیندی که یک شی خصوصیات سایر اشیا را به دست می آورد.
برنامه زیر عدد باینری(عدد در مبنای2) را به عدد دسیمال(عدد درمبنای 10) تبدیل می کند:
...........................
/*
Convert binary number to decimal number example.
This example shows how to convert binary integer number
to decimal integer number using valueOf method of Integer
wrapper class.
*/
package javalike;

public class ConvertBinaryToDecimalNumber {

public static void main(String[] args) {

//declare string containing binary number
String strBinaryNumber = "111000";

/*
* to convert binary number to decimal number use,
* int parseInt method of Integer wrapper class.
*
* Pass 2 as redix second argument.
*/

int decimalNumber = Integer.parseInt(strBinaryNumber,2);
System.out.println("Binary number converted to decimal number");
System.out.println("Decimal number is : " + decimalNumber);

}
}

/*
Output would be
Binary number converted to decimal number
Decimal number is : 56
*/
................................
✔️خروجی:
Binary number converted to decimal number
Decimal number is : 56
............................................
✳️ویژگی این برنامه: این برنامه با سورس کد بسیار کوتاه عدد باینری را به عدد دسیمال تبدیل می کند.
مرتب سازی عناصر درون یک آرایه
در سورس کد زیر ما یک آرایه از نوع String داریم که عناصر درون ان را بر اساس حروف الفبا مرتب سازی می کنیم.
.........................................
package test;

import java.util.Arrays;

public class Test {

public static void main(String[] args) {
String[] fruits = new String[] { "Pineapple", "Apple", "Orange",
"Banana" };

Arrays.sort(fruits);

for (int i = 0; i < fruits.length; i++) {
System.out.println("fruits " + " : " + fruits[i]);
}

}

}
.........................................
خروجی:
fruits : Apple
fruits : Banana
fruits : Orange
fruits : Pineapple
........................................
#تمرین
public class Exercise10 {

static int max;
static int min;

public static void max_min(int my_array[]) {
max = my_array[0];
min = my_array[0];
int len = my_array.length;
for (int i = 1; i < len - 1; i = i + 2) {
if (i + 1 > len) {
if (my_array[i] > max) max = my_array[i];
if (my_array[i] < min) min = my_array[i];
}
if (my_array[i] > my_array[i + 1]) {
if (my_array[i] > max) max = my_array[i];
if (my_array[i + 1] < min) min = my_array[i + 1];
}
if (my_array[i] < my_array[i + 1]) {
if (my_array[i] < min) min = my_array[i];
if (my_array[i + 1] > max) max = my_array[i + 1];
}
}
}

public static void main(String[] args) {
int[] my_array = {25, 14, 56, 15, 36, 56, 77, 18, 29, 49};
max_min(my_array);
System.out.println(" Original Array: " + Arrays.toString(my_array));
System.out.println(" Maximum value for the above array = " + max);
System.out.println(" Minimum value for the above array = " + min);
}
}
==============
خروجی:
Original Array: [25, 14, 56, 15, 36, 56, 77, 18, 29, 49]
Maximum value for the above array = 77
Minimum value for the above array = 14
===============
#سوال
چگونه حروف تکراری رو از یک رشته حذف کنیم؟


package test;

import java.util.Scanner;

public class Test {
public static String removeDup(String inputString) {
if (inputString.length() < 2)
return inputString;
if (inputString == null)
return null;
char[] inputBuffer = inputString.toCharArray();
String str = new String();
for (int i = 0; i < inputBuffer.length; i++) {
for (int j = i + 1; j < inputBuffer.length; j++) {
if (inputBuffer[i] == inputBuffer[j]) {
inputBuffer[j] = 0;
}
}
}
for (int i = 0; i < inputBuffer.length; i++) {

if (inputBuffer[i] != 0) {

str += inputBuffer[i];
}
}
String result = new String(str);
return result;
}

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter the String:");

String str = input.next();
System.out.println(removeDup(str));

}

}
..................................
#سوال


✳️صورت سوال: برنامه ای به زبان جاوا بنویسید که یک متد داشته باشد که عملیات زیر را انجام دهد:
تبدیل مبنای 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 یک عدد باینری یا دودویی هستش که تنها برای ماشین قابل فهم می باشد و با عدد صد و یازده اشتباه نگیریدش
...................................
#سوال


چگونه مثلث خیام-پاسکال را بدون استفاده از آرایه در جاوا ایجاد کنیم؟
—----------------------------------------------------------------------------------------------------------------------------------------------------------------
پاسخ:
package www.javapro.ir;

public class PascalTriangle {
public static void main(String[] args) {
int rows = 10;
for (int i = 0; i < rows; i++) {
int number = 1;
System.out.format("%" + (rows - i) * 2 + "s", "");
for (int j = 0; j <= i; j++) {
System.out.format("%4d", number);
number = number * (i - j) / (j + 1);
}
System.out.println();
}
}
}
✳️در مثال زیر ما یک آرایه از نوع String داریم که مقدار اولیه شده است.
در برنامه ابتدا این آرایه در یک فایل جدید ریخته شده است
حالا در مرحله بعد قصد داریم این آرایه را از فایل ایجاد شده بخوانیم و درون یک آرایه جدید بریزیم
در نهایت مقادیر آرایه جدید را در محیط کنسول چاپ می کنیم.

سطح مثال:متوسط

................................................................................................
package fileIO;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStream;

public class ArrayinFile {

public static void main(String[] args) {
String name[]={"Ali","Reza","hasan","jafar"};

File addressOut=new File("name.txt");
try {
FileWriter fw=new FileWriter(addressOut);
for(int i=0;i<name.length;i++){
fw.write(name[i]+" ");
}
fw.close();

} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String getnameFile[]=new String[4];
File addressIn=new File("name.txt");
try {
FileReader fr=new FileReader(addressIn);
int ch=0;
String str=new String();
int i=0;
while((ch=fr.read())!=-1){
if(ch!=' '){
str+=(char)ch;
}else{
getnameFile[i]=str;
str="";
i++;
}

}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

for( int i=0;i<getnameFile.length;i++){
System.out.print(getnameFile[i]+" ");
}
}

}
=============================================
خروجی برنامه:
در کامپیوتر در پوشه پروژمون یک فایل با نام و فرمت name.txt ایجاد می شود.
در محیط کنسول خروجی بصورت زیر است:


اینم اموزشای این بخش...منتظر بقیه ی اموزش ها باشید (:
خود ازمایی :
نقشه ی ترسیمی یک خانه همانند یک ...........برای یک کلاس هست .

پاسخ : شی

اعلان هر کلاس که با کلمه کلیدی .......شروع میشود بایستی در فایلی ذخیره شود که دقیقا مشابه نام کلاس بوده و دارای پسوند .java هست

پاسخ : public

اعلان هر کلاس حاوی کلمه ی کلیدی ......بوده و بعد از ان بلافاصله نام کلاس اورده میشود .

پاسخ : class

جاوا دارای دو نوع اصلی برای ذخیره سازی اعداد اعشاری در حافظه است ..........و ...............

پاسخ : Double , float

متغیرهای از نوع float نشان دهنده ی ......... اعداد اعشاری هستند

پاسخ دقت منفرد

کلاس String در بسته ی ...........قرار دارد

پاسخ : java.lang

اگر همیشه به کلاسی با نام کامل ان مراجعه میکنید نیازی به ..........نیست

پاسخ : اعلان import
ماژول ها ی برنامه در جاوا

سه نوع ماژوال در جاوا وجود دارد - متد ها, کلاس ها و پکیج هاا. برنامه های جاوا متشکل از قسمت های متعددی از جمله متد ها و کلاس ها هستند.
برنامه نویس اقدام به ایجاد و ترکیب متد ها و کلاس های جدید با کلاس های از قبل اماده شده موجود در کتابخانه کلاس جاوایا همون
Java Api Programming Interface می کند.

در اکثر مواقع کلاس های مرتبط در پکیج ها گروه بندی می شوند از اینرو است که میتوان انهارا وارد برنامه کرده و از انها استفاده مجدد کرد. کتابخانه استاندارد جاوا کلکسیون با ارزشی از کلاس های از پیش تعریف شده است که حاوی متد هایی برای انجام محاسبات ریاضی, کار با رشته ها , کار با کاراکتر ها , عملیات ورودی/ خروجی (I/O)وعملیات پایگاه داده , عملیات شبکه , عملیات پرداز فایل , بررسی خطا و بسیاری از کاربرد های دیگر است..

از اینرو سعی کنید با کلکسیون ارزشمند کلاس ها و متد های موجود در Java Api اشنا شید ...
http://docs.oracle.com/javase/8/docs/api/


برخی از پکیج های پرکاربرد در پایین اورده شده است :

javax.swing
حاوی کلاس ها و واسط ها برای کامپونت های swing Gui جاوا است
javax.xml.ws
حاوی کلاس ها و واسط های برای کار با سرویس در وب در جاوا است
java.time
حاوی کلاس ها و واسط ها برای کار با تاریخ و زمان است. این پکیج برای جایگزین شدن با قابلیت های قدیمی تاریخ و زمان در پکیج java.util طراحی شده است
java.media
حاوی کلاس ها و واسط ها برای کار با قابلیت های مولتی مدیای جاواست
java.io
java input/output packag حاوی کلاس ها و واسط هایی است که به برنامه امکان ورود و خروج داده را میدهد
java.net
حاوی کلاس ها و واسط هایی است که به برنامه ها امکان برقرای ارتباط از طریق شبکه کامپیوتری همانند اینترنت را میدهند
java.sql

JDBC Package حاوی کلاس ها و واسط هایی برای کار با پایگاه داده است

java.util
حاوی کلاس های یوتیلیتی و واسط هایی است که کار با تاریخ و زمان و پردازش اعداد تصادفی و پردازش داده های حجیم همچنین تقسیم رشته ها به قسمت های کوچک تر به نام توکن را فراهم میکند

واقعا مجموعه پکیج های موجود در جاوا بسیار زیاد هستندو علاوه بر تعدادی از اندک پکیج ها که در بالا توضیح داده شد جاوا حاوی پکیج هایی برای انجام کار های گرافیکی پیچیده. واسط های گرافیکی کاربر پیشرفته . چاپ, شبکه سازی پیشرفته , امنیت , پردازش پایگاه داده , مولتی مدیا, گزینه های توانمندی برای افراد معلول و قابلیت های دیگر است
برترین زبان های برنامه نویسی سال 2017
بیست زبان که در زمینه ی ساخت برنامه های سازمانی
دسکتاپ و علم داده جزوه مجبوب ترین ها هستند
کمپانی TIOBE ، در ماه نوامبر 2017 رتبه بندی جدیدی از زبان های برنامه نویسی را منتشر کرده است و این رتبه بندی بر اساس محبوب ترین زبان های برنامه نویسی است. طبق این لیست زبان Java محبوب ترین زبان است
از سوی دیگر، PYPL طبق علاقه مندی کاربران در آموزش زبان برنامه نویسی در گوگل نیز به همین نتیجه رسید و جاوا را به عنوان زبان برنامه نویسی مطلوب شناسایی کرد و پس از آن Python و PHP را معرفی کرد.
Learn Java
Photo
لازم است برای کسانی که بی اطلاع هستند بگوییم که رتبه بندی TIOBE بر اساس تعداد جستجو نام زبان برنامه نویسی به عنوان یک کلمه کلیدی در موتور جستجو محاسبه می شود. در حالی که PYPL از داده های خام موجود در Google Trends برای محاسبه رتبه بندی استفاده می کند و بر اساس بیشترین جستجو برای یک آموزش زبان برنامه نویسی، محبوب ترین را شناسایی میکند.

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

و در هر دو نتیجه نشان داده شده است جاوا برترین زبان و پس از ان سی و سی پلاس پلاس به ترتیب در رتبه های دوم و سوم قرار دارند
Modules ها در جاوا

تجربه نشان داده بهترین روش برای ساخت و نگهداری یک برنامه بزرگ این است که برنامه به قسمت های کوچک تر یا ماژول
(modules)
تقسیم شود به نحوی که هر قسمت وظیفه ی خاصی داشته باشید . در اینحالت میتوان به طرز شاسته ای بر برنامه مدیریت داشت. این روش به نام روش تقسیم و غلبه
(divide and conquer) معروف است.
چرا متد main به صورت استاتیک اعلان شده است ؟
زمانیکه jvm را همراه دستور java به اجرا در می اورید. مبادرت به فراخوانی متد main از کلاسی میکنید که انرا تعیین کرده اید. اعلان main بصورت استاتیک به jvm امکان فراخوانی main را بدون ایجاد یک شی از کلاس میدهد. زمانی که برنامه را به اجرا در می اورید نام کلاس را بعنوان یک ارگومان در دستور جاوا مشخص میکنید , بصورت :
java classname argument1 argument2...
jvm اقدام به بازکردن کلاس مشخص شده توسط classname و استفاده از نام ان کلاس برای فراخوانی متد main میکند.
در دستور فوق , classname یک ارگونان خط فرمان است که به jvm نشان میدهد که کدام کلاس اجرا شود. در ادامه ی classnamw میتوان لیستی از رشته ها (جدا شده با فاصله) را بعنوان ارگومان های خط فرمان مشخص کرد که jvm انهارا به برنامه ارسال میکند
چنین ارگومان هایی برای تعیین عملکرد برنامه بکار گرفته میشوند.