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



@parsa8113
@bardiademon
Download Telegram
مفاهیم
مفهومLiteral چیست؟!
مقداری است که ممکن است به یک متغیر اولیه یا رشته (String) اختصاص داده شود همچنین به عنوان یک پارامتر یا آرگونان به متر منتقل شود

مفهوم Unicode چیست؟؛
جاوا از Unicode برای نشان دادن کاراکتر ها استفاده می کند.
یونیکد یک مجموعه کاراکتر های کامالا بین المللی را تعریف میکند که میتواند تمام کاراکتر های موجود در زبان انسانی را نشان دهد.

منظور از Type casting در جاوا چیست؟!
برای ایحاد تبدبل بین دو نوع ناسازگار، باید ازcasting استفاده کنیم
دو نوع casting عبارت اند از:
Casting خودکار
Casting صریح

خودک ار به صورت خودکار و بدون دخالت برنامه نویس و صیح مخالف خودکار است
ارایه چیست؟!
ارایه یک گروه تعداد ثابتی از مقادیر هم نوع میباشد

متد substring () چیست؟!
برای بدست اوردن زیر رشته ای از یک رشته مشخص در جاوا استفاده میشود

ایا جاوا مستقل از پلتفرم است؟!
بله.جاوا یک زبان مستقل است. ما میتوانیم کدهای جاوا را در یک پلتفرم بنویسیم و ان را در پلتفرمی دیگر اجراکنیم. برای مثال ما میتوانیم کدهای خودمون را در ویندوز نوشته و در لینوکس اجرا کنیم

تفاوت جاوا با سی پلاس پلاس در چیست؟
1_ساده بودن (simple)
2_چند نخی (multi threaded)
3_برنامه های توزیع شده
4_تنومند بودن
5_ امنیت بالا
6_حذف پیچیدگی های سی پلاس پلاس مثل اشاره گر ، وراثت و...

کلاس چییست؟!
کلاس چیزی جز یک الگو نیست که داده ها ورفتارهای مربوط به نمونه های آن کلاس را توصیف می کند
جاوا به زبان ساده 34

عبارت تکرار do...while

عملکرد عبارت do...while همانند عبارت while است. در عبارت while , شرط تکرار حلقه در ابتدای حلقه تست میشود
قبل ازینکه بدنه در حلقه به اجرا در اید.

اما عبارت do...while شرط را پس از اجرای حلقه تست میکند

درواقع یکبار حلقه رو اجرا میکنه بعد نگاه میکنه به شرطا
ولی while خالی اول نگاه میکنه به شرطا اگه برقرار بود اجرا میکنه

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

public class DoWhileTest
{
public static void main
{
int counter = 1;
do {
System.out.printf("%d ", counter);
++counter;
}

while (counter<=10)
System.out.println();
}
}

output :
1 2 3 4 5 6 7 8 9 10

در این برنامه برای چاپ مقادیر یک تا ده از do...while استفاده شد

در اولین برخورد برنامه با این عبارت , مقدار متغیر counter(با مقدار ۱)
چاپ شده, سپس counter یک واحد افزایش میابد. سپس با عبارت while ارزش یابی شده و برنامه در میابد که counter کوچک تر یا مساوی ده نشده وسپس do..while از اول اجرا شده و این روند ادامه خواهد یافت تا مقدار counter به ده برسد

توجه :
++counter
همان
counter++
است
j2ewiz.exe
7.1 MB
گرفتن خروجی exe از فایل های جاوا
(jar file)
در این آموزش یاد می گیریم که چگونه می توان در زبان جاوا آبجکت ها را به سادگی در فایل نوشت و از فایل خواند. در این آموزش با دو کلاس فوق العاده مفید و کاربردی ObjectInputStream و ObjectOutputStream آشنا می شویم.

به جای شرح تئوری سعی می کنم در طی چند مثال شما را با ذخیره سازی آبجکت در فایل آشنا کنم.

اگر بخواهیم انواع داده اولیه مانند int ، float یا double یا ... را در فایل به صورت آبجکتی ذخیره کنیم باید از کلاس های متناظر با آن ها استفاده کنیم ، به عنوان مثال برای ذخیره سازی نوع داده ای از نوع int در فایل به صورت آبجکتی باید از Integer استفاده کنیم.

اشیا را باید به همان ترتیبی که در فایل می نویسیم از فایل بخوانیم. در مثال زیر ابتدا رشته name و سپس عدد score به صورت آبجکتی در فایل ذخیره می شوند. برای خواندن از فایل نیز ابتدا باید مقدار متناظر با name را از فایل بخوانیم و سپس مقدار متناظر با score . اشیا خوانده شده از فایل به صورت Object هستند و خودمان باید آن ها را cast کنیم.


import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;



public class ObjectFileExample {

public ObjectFileExample() throws Exception {

File mFile=new File("myfile.sfc");

/* Write Objects To File */
FileOutputStream fos=new FileOutputStream(mFile);

ObjectOutputStream oos=new ObjectOutputStream(fos);

String name="Parsa";
Integer score=20;

oos.writeObject(name);
oos.writeObject(score);

oos.close();
fos.close();

/* Read Objects From File */
FileInputStream fis=new FileInputStream(mFile);

ObjectInputStream ois=new ObjectInputStream(fis);

String nameInFile=(String)ois.readObject();
Integer scoreInFile=(Integer)ois.readObject();

System.out.println(nameInFile+" , "+scoreInFile);

ois.close();
}
public static void main(String[] args) {
try {
new ObjectFileExample();
} catch (Exception e) {
e.printStackTrace();
}
}
}


خروجی برنامه به صورت زیر خواهد بود :

Parsa , 20
در JDK‌ جاوا دو راه حل برای کار با فایل های XML قرار داده شده است. یکی DOM و دیگری SAX‌ . البته راه های دیگری نیز وجود دارد.

شاید بتوان گفت که DOM ساده ترین روش کار با فایل های XML است. DOM Parser کل سند XML‌ را خوانده و آن را به صورت درختی در حافظه قرار می دهد ، سپس ما می توانیم از این ساختار استفاده کنیم و داده های داخل فایل XML‌ را بخوانیم. مزیت DOM‌ سادگی آن است. از معایب آن نیز می توان به مصرف حافظه زیاد و کند بودن اشاره کرد.

اگر قصد دارید با فایل XML‌ ای کار کنید که حاوی اطلاعات زیادی است بهتر است از SAX استفاده کنید.

همانطور که قبلا هم گفتم یکی از بهترین راه های یادگیری استفاده از مثال . در ادامه سعی می کنیم با چند مثال با DOM و کار با فایل های XML‌ آشنا شویم.

قبل از شروع کار بهتر است یک فایل XML ایجاد کنیم و آن را در جای خاصی ذخیره کنیم. در اینجا من فایلی به نام friends.xml ایجاد می کنم و محتوی زیر را در آن می نویسم :


<?xml version="1.0" encoding="UTF-8"?>
<friends>
<person id="1">
<name>ahad</name>
<lastname>birang</lastname>
<gamescore>4.6</gamescore>
</person>
<person id="2">
<name>navand</name>
<lastname>namirania</lastname>
<gamescore>0.4</gamescore>
</person>
<person id="3">
<name>mehdi</name>
<lastname>akbari</lastname>
<gamescore>5.2</gamescore>
</person>
</friends>

فایل را در همان پوشه کد برنامه قرار می دهم. سپس با استفاده از کد زیر این فایل را به راحتی می خوانیم :



import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;


/**
*
* @author safeallah
*/
public class DOMParserExample {

public DOMParserExample(){
try{
File xmlFile=new File(getClass().getResource("friends.xml").getFile());
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
Document document=db.parse(xmlFile);

document.getDocumentElement().normalize();

System.out.println("[Root : "+document.getDocumentElement().getNodeName()+" ]");

NodeList list=document.getElementsByTagName("person");

for(int i=0;i<list.getLength();i++){
Node n=list.item(i);
if(n.getNodeType()==Node.ELEMENT_NODE){
Element element=(Element)n;
System.out.println("-----");

System.out.println("id \t\t:"+element.getAttribute("id"));
System.out.println("name \t\t: "+element.getElementsByTagName("name").item(0).getTextContent());
System.out.println("lastname\t: "+element.getElementsByTagName("lastname").item(0).getTextContent());
System.out.println("gamescore\t: "+element.getElementsByTagName("gamescore").item(0).getTextContent());

}

}


}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String args[]){
new DOMParserExample();
}
}


خروجی برنامه :


[Root : friends ]
—---
id :1
name : ahad
lastname : birang
gamescore : 4.6
—---
id :2
name : navand
lastname : namirania
gamescore : 0.4
—---
id :3
name : mehdi
lastname : akbari
gamescore : 5.2
بازی دوز با الگوریتم هرس الفا بتا

محیط : کنسول
لذت ببرید
Forwarded from Deleted Account
AlphaBetaMinimaxTTT.java
9.2 KB
🔮معکوس کردن یک عدد در جاوا
مثال: 123--->321
پاسخ:
package dot;

import java.util.Scanner;

class Reverse {

public static void main(String args[]) {
Scanner input = new Scanner(System.in);
System.out.println("Please Enter the number:");
int num = input.nextInt(); // take argument as command line

int remainder, result = 0;

while (num > 0) {

remainder = num % 10;

result = result * 10 + remainder;

num = num / 10;

}

System.out.println("Reverse number is : " + result);

}

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