درود به همه همراهان آی تی پورت. متاسفانه در جلسه ششم با کمی تاخیر خدمت شما رسیدیم. دلیل این امر وجود پروژهای دانشگاه است، که کمتر وقت آزاد جهت تهیه آموزش به دست می آوریم. در آموزش های قبلی به مباحث انواع متغییر ها ، انواع عملگر ، ساختارهای کنترلی ، آرایه ها ، برنامه نویسی شی گرایی و در بخش شی گرایی به متدها ، خصوصیات ، Package و Object سازی و متد سازنده شی گرایی پرداختیم. در جلسه پنجم آموزش جاوا در ادامه بحث شی گرایی به مباحث ارثبری و دستور super، سطحهای دسترسی، کلاس انتزاعی و متد انتزاعی و … پرداختیم. در این جلسه به مباحث نحوه تعریف نام، تبدیل داده ها به یکدیگر و معرفی چند متد می پردازیم. اما بریم برای شروع آموزش.
برای نامگذاری نیاز است گروهی از قواعد را رعایت کنیم مثلاً نامگذاری کلاس با نامگذاری متد فرق دارد، این قواعد اجباری نیست اما بهتر است از این قواعد تابعیت کرد. برای نامگذاری کلاس باید حرف اول کلاس بزرگ باشد، و اگر کلاس کلمه دیگری نیز داشته باشد باید حرف اول آن کلمه نیز بزرگ باشد. مثال :
class Amir
و یا
class AmirBahador
قواعد اجباری {به یاد داشته باشید که در جاوا نام فایل جاوا با نام کلاس تعریف شده در فایل باید یکی باشد (حتی از لحاظ بزرگی و کوچکی حروف)، در جاوا تنها یک کلاس می توان در یک فایل تعریف کرد، مگر کلاس ثانویه به صورت درونی در کلاس اصلی تعریف گردد. پسوند فایل های جاوا قبل از ترجمه .java است و بعد از ترجمه فایلی با پسوند .class از آن ایجاد می شود، نام پکیج مشخص شده در سورس کد با نام پوشه که فایل در آنجا موجود است باید یکی باشد.}برای نامگذاری متد باید حرف اول کوچک باشد، و اگر متد کلمه دیگری نیز داشته باشد باید حرف اول آن کلمه بزرگ باشد. مثال :
void send()
و یا
void sendEmail()
و یا
void sendEmailToAmir()
برای نامگذاری متغیر باید تمامی حروف متغیر کوچک باشد و جدا سازی کلمات بوسیله “_” انجام میشود.به عنوان مثال :
int age
ویا
int age_of_amir
برای نامگذاری package نیز باید تمامی حروف کوچک باشد.
در بسیاری موارد لازم است تا داده ای به نوع دیگر داده تبدیل شود، فرض کنید لازم است تا مقدار یک رشته با یک عدد جمع ریاضی شود در این شرایط می توان به شکل ذیل عمل کرد.
String a=”۱۲”; int b = Integer.parseInt(a); int c = b+2;
در این شرایط مقدار رشته ای ۱۲ به مقدار عددی ۱۲ تبدیل سپس با عدد ۲ جمع و حاصل درون متغیر c ریخته خواهد شد.در مثال قبل داده رشته ای تبدیل به داده عددی شده است، برای تبدیل داده عددی به رشته ای کافیست تا داده ی عددی را با “” جمع ببندیم.
int i = 12; String j = i+””;
کلاس String دارای متد های گوناگونی است، در این قسمت به بعضی از این متد ها اشاره شده است.
متد trim: این متد فاصله های ابتدا و انتهای رشته را حذف و مقدار رشته ای را باز می گرداند.
متد equals: این متد یک پارامتر دریافت و بررسی می کند که آیا مقدار رشته با مقدار پارامتر ورودی برابر است یا خیر (خروجی این متد یا صحیح و یا نا صحیح است)
متد indexOf: این متد یک پارامتر ورودی دریافت سپس درون رشته مورد نظر بدنبال مقدار پارامتر ورودی گشته و جایگاه اولین موجودی را به صورت عددی باز می گرداند.
متد length: این متد طول رشته را به صورت عددی باز می گرداند.
متد lastIndexOf: این متد یک پارامتر ورودی دریافت سپس درون رشته مورد نظر بدنبال مقدار پارامتر ورودی گشته و جایگاه آخرین موجودی را به صورت عددی باز می گرداند.
متد replaceAll: این متد دو پارامتر ورودی دریافت، سپس در رشته مورد نظر تمامی مقادیر برابر با پارامتر ورودی اول را به مقدار پارمتر ورودی دوم تغییر می دهد.
متد substring: این متد دو پارامتر ورودی به شکل عددی دریافت، سپس رشته را نسبت به نقاط مشخص شده جدا کرده و مقدار را به صورت رشته ای باز می گرداند.
متد های toUpperCase و toLowerCase: تمامی حروف رشته مورد نظر را به حروف بزرگ و یا کوچک تغییر خواهند داد.
در بسیاری از مواقع لازم است تا نوع خصوصیات یک کلاس به صورت داینامیک تغیر نماید در این صورت باید از مبحث Generic استفاده کرد، به مثال ذیل توجه کنید.
class Amirsam <noe> { noe data; public noe getData() { return data; } public void setData(noe data) { this.data = data; } public static void main(String[] args) { Amirsam <String> amirsam = new Amirsam<String>(); amirsam.setData("12"); System.out.println(amirsam.getData()+2); } }
همانطور که حدث زده اید خروجی برنامه فوق ۱۲۲ است دلیل این امر آن است که در زمان شی سازی مقدار noe را String مشخص کرده ایم در این حالت نوع متغیر data از نوع String تعریف می شود، حال به مثال ذیل توجه کنید:
class Amirsam <noe> { noe data; public noe getData() { return data; } public void setData(noe data) { this.data = data; } public static void main(String[] args) { Amirsam <Integer> amirsam = new Amirsam<Integer>(); amirsam.setData(12); System.out.println(amirsam.getData()+2); } }
همانطور که حدث زده اید خروجی برنامه فوق ۱۲۲ است دلیل این امر آن است که در زمان شی سازی مقدار noe را Integer مشخص کرده ایم در این حالت نوع متغیر data از نوع Integer تعریف می شود.
گهگاه نیاز است تا اشیا خود را درون یک شی عمومی ذخیره کنیم برای اینکار میتوان از کلاس Object استفاده کرد به مثال ذیل دقت کنید:
class Amirsam { public static void main(String[] args) { Object amir = new Amirsam(); } }
همانطور که مشاهده می کنید شی جدید را درون amir که از نوع Object است ذخیره کرده ایم، تمامی اشیا را در درون شی Object می توان ذخیره کرد، حال به مثال ذیل دقت کنید:
class Amirsam { public static void main(String[] args) { Object amir = new Amirsam(); Amirsam x = (Amirsam) amir; } }
همانطور که مشاهده می کنید شی amir که از نوع Object است را نمی توان به صورت مستقیم در درون x که از نوع Amirsam است ذخیره کنیم، برای اینکار باید اول شی amir تبدیل به نوع Amirsam شود، برای اینکار از دستور (Amirsam) باید استفاده کنیم. به این عمل casting گویند!
گهگاه نیاز است تا توضیحاتی در سطح برنامه نوشته شود و از این توضیحات در روند اجرای برنامه استفاده نمود. برای اینکار می توان از Annotation ها استفاده نمود.
@Retention(RetentionPolicy.RUNTIME) @interface Check { public String checkerName() default "Nadarad"; public boolean status() default false; }
در این حالت نیاز است تا ما توضیحات را قاعده مند کنیم، در مثال بالا یک توضیح به نام Check ایجاد کرده ایم که این چک دارای دو خصوصیت checkerName و status می باشد مقدار پیش فرض این خصوصیات به ترتیب Nadarad و false می باشد.
@Check(checkerName = "RezaAmini", status = true) class Amirsam { public static void main(String[] args) { Annotation[] annotations = Amirsam.class.getAnnotations(); if (annotations[0].toString().equals("@test.controller.Check(status=true, checkerName=RezaAmini)")) { System.out.println("in class tavasote aghaye RezaAmini check shode ast"); } else { System.out.println("in class check nashode ast!"); } } }
در این حالت خروجی برنامه in class tavasote aghaye RezaAmini check shode ast خواهد بود.
@Check(checkerName = "RezaAmini", status = false) class Amirsam { public static void main(String[] args) { Annotation[] annotations = Amirsam.class.getAnnotations(); if (annotations[0].toString().equals("@test.controller.Check(status=true, checkerName=RezaAmini)")) { System.out.println("in class tavasote aghaye RezaAmini check shode ast"); } else { System.out.println("in class check nashode ast!"); } } }
حال اگر مقدار status را همانند مثال بالا به false تغیر دهیم خروجی برنامه in class check nashode ast خواهد بود.
حال که با هسته اصلی اولیه زبان جاوا آشنا شدید باید بدانید که این زبان دارای ویرایش های متعددی می باشد:
در حال حاضر شرکت Oracle شرکت Sun را خریداری کرده است پس برای کسب اطلاعات بیشتر به سایت شرکت Oracle مراجعه فرمائید.
در دنیای بیپایان نرمافزارها و فایلهای دیجیتال، امنیت در دانلود و استفاده از آنها یک…
شرکت ایسوس یکی از پیشتازان در صنعت فناوری اطلاعات و الکترونیک است که در زمینه…
آیا شما هم به دنبال کار با کد های پاورشل برای هک هستید؟ در این…
این روزها که همه افراد به دنبال یک شغل پردرآمد می گردند، مشغول به کار…
خطای page isn’t available right now یکی از آزار دهنده ترین مشکلاتی است که کاربران…
ویندوز پاورشل چیست؟ پاورشل ابزاری قدرتمند به حساب می آید که همه افراد علاقه مند…
View Comments
سلام
واقعا دستتون درد نکنه.مرسی ازآموزشتون.فقط اگه میشه جلسه هفتمشم زودتر بذارین تو سایت!!!!!!!!!!
خواهش می کنم
ممنون از شما
ولی متاسفانه تا پایان ترم امکان ارسال بخش جدید وجود ندارد.
سلام آقا حسین. 6 ماه آز آخرین آموزش جاوا گذشت ولی هنوز شروع نکردید!
سلام به چند دلیل ادامه پیدا نکرده هنوز
کم بود وقت و عدم حمایت کاربران، متاسفانه آموزش جاوا خیلی طرفدار نداره
ولی طی برنامه ریزی های انجام شد احتمام داره از دو یا سه ماه دیگر آموزش ها از حالت متنی به ویدیو و توسط یکی از برترین استادهای جاوا کشور ادامه پیدا کنه.
تشکر عالی بود
جالب بود ممنون :)
ممنون استاد :)
سلام
با تشکر از شما
آقا تو آموزش جاوا چرا کسی روش ایجاد یک پروژه جدید رو آموزش نمیده ؟؟؟! همه بلافاصله میرن سر اصل مطلب که دستورات شرطی چین و یه helloword مینویسن و ... از این جور مسائل ! بعدش کسی حتی یه برنامه ساده مثل طریقه گرفتن عدد از ورودی یا مثلا برنامه تشخیص عدد اول با جاوا و همین چیزهایی که توی سی و سی پلاس پلاس یاد گرفتیمو یاد نمیده اصلا!!! بنظر من نه کتاب درست حسابی برای آموزش جاوا توی اینترنت گیر میاد نه ویدیوی خوب و کارآمدی !
سلام
چرا شما کمی در سایت جستجو نمی کنید؟ مگر نمی بینید که آموزش ششم هست خوب پس باید برید سمت جلسه اول و دوم دیگه :D
جلسه اول: http://www.itport.ir/1392/05/28/java-training-session-1/
جلسه دوم: http://www.itport.ir/1392/06/05/java-training-session-2/
جلسه سوم: http://www.itport.ir/1392/07/18/java-training-session-3/
چند نکته که باید در مورد جاوا بدونید این هست که جاوا زبان برنامه نویسی نیست که خواسته باشید برنامه مهدکودک یا برنامه های سطح پایین باهش بنویسید. به همین دلیل هیچ کس در دنیا نمیاد همچین برنامه های رو با جاوا پیاده سازی کنه.
جاوا در پروژه های استفاده میشه که قیمتش حداقل 50 الی 100 میلیون هست. درضمن میشه گفت سخت ترین زبان برنامه نویسی هست ولی یکی از قدرتمندترین ها
برای مثال ناسا میاد از جاوا استفاده می کنی یا در ایران هسته بانک رو با جاوا می نویسند یا ایرانسل در برخی از پروژه هاش که می تونه پولش رو بده استفاده میشه.
پس دنبال این نباش که با جاوا بخوای عدد اول رو شناسایی کنی.
برای یادگیرش هم حتما باید با یک مدرس در ارتباط باشی چرا که خیلی سخت هست و خیلی سوال برات در طی آموزش پیش میاد که باید کی حرفه ای پاسخش رو بده تا در آینده یک فرد موفق باشی.
سلام
آموزش هاتون عالی ولی چرا ادامه نداره؟!!!!!!!!!!
ممنون از شما
برای نامگذاری package اگر بیش از یک کلمه داشتیم بین آن ها را _ می گذاریم یا فاصله می دهیم یا کلمات را بهم چسبیده می نویسیم؟
جناب استاد جاهدی عزیز بابت آموزشای بی دریغ تون ازتون تشکر میکنم ومنتظر آموزشای بعدیتون هستم.
پیروز و موفق باشید.
سلام خستە نباشید
چطوری میشە با برنامەی جاوا اکانت ویندوز درست کرد
مثل درست کردن فلدر
مثلا
واسە درست کردن فلدر
import java.io.*;
public class Test {
public static void main(String[] args) {
File myFile=new File("D:\\Test");
if(!myFile.exists()){
if(myFile.mkdir())
System.out.println("Folder Created");
}
else
System.out.println("This name is exist");
}
}
مطالب آموزشیتون خیلی خوبه !
ممنون