برنامه نویسی جاوا

برنامه نویسی جاوا

برنامه نویسی جاوا

برنامه نویسی جاوا

۲ مطلب با کلمه‌ی کلیدی «برنامه نویسی با جاوا» ثبت شده است

  • ۰
  • ۰

جاوا (به انگلیسی: Java) یک زبان برنامه‌نویسیِ شئ‌گرا است که برای نخستین بار توسط جیمز گاسلینگ در شرکت سان مایکروسیستمز ایجاد گردید و در سال ۱۹۹۵ به عنوان بخشی از سکوی جاوا منتشر شد. زبان جاوا شبیه به ++C است اما مدل شیءگرایی آسان‌تری دارد و از قابلیت‌های سطح پایین کمتری پشتیبانی می‌کند. یکی از قابلیت‌های بنیادین برنامه نویسی  جاوا  این است که مدیریت حافظه را بطور خودکار انجام می‌دهد. ضریب اطمینان عملکرد برنامه‌های نوشته‌شده به این زبان بالا است و وابسته به سیستم‌عامل خاصی نیست، به عبارت دیگر می‌توان آن را روی هر رایانه با هر نوع سیستم‌عاملی اجرا کرد. برنامه‌های جاوا به صورت کدهای بیتی همگردانی (کامپایل) می‌شوند؛ که مانند کد ماشین هستند و به ویژه وابسته به سیستم‌عامل خاصی نیستند.

شرکت وب یونیک ، با تیم مجرب خود آماده طراحی سایت بر  طبق نظر مشتریان خود میباشد و هرگونه سفارش طراحی سایت  را با بهترین کیفیت و قیمت انجام میدهد.هم چنین آماده انجام پروژه های طراحی سایت در اصفهان میباشد.هم چنین شرکت وب یونیک به برنامه نویسی موبایل و هم  چنین برنامه نویسی اندروید می پردازد.
.مثل آموزش قبل یه پروژه با یک فهرست ساده بسازید در ادامه می‌خوایم برای هر ردیف از فهرستمون یه عکس نشان اون دانشگاه رو هم کنار اسمش بندازیم. پس اول از همه تصاویر مورد نظر رو به پروژه مون در زیرشاخه res و پوشه drawable-hdpi اضافه می‌کنیم، فایل عکس‌هایی که من استفاده کردم رو می‌تونید از اینجا دانلود کنید. وارد کردنش به پروژه هم کار آسونیه، هرجایی که عکسهاتون هست کپی کنید و بعد روی پوشه drawable-hdpi راست کلیک کنید و paste.

۲.اولین کاری که باید بکنیم اینه که یه طرح‌بندی برای هر ردیف از فهرست درست کنیم. تا با توجه به اون اندروید اطلاعتمون رو در هر ردیف بدونه چطور نمایش بده. پس احتیاج داریم تا یه فایل xml برای طرح‌بندی‌مون بسازیم. روی فولدر layout (در res) راست کلیک کنید. گزینه New و other رو انتخاب کنید. (این تصویر) بعد هم از زیرشاخه Android گزینه Android XML Layout File رو انتخاب کنید و براش اسم بذارید من اسمشو می‌ذارم redife_fehrest.

۳. خوب اولین چیزی که هر ردیف می‌خوایم داشته باشه یه تصویره، پس یه نمای‌تصویر (imageView) در فایل تازه ساخته شدمون می‌ذاریم. نمای‌تصویر رو می‌تونید از ستون سمت چپ از بخش Images & Media بکشید و روی صفحه رها کنید. همین که رهاش می‌کنید یه پنجره باز می‌شه که ازتون می‌خواد منبع عکس رو مشخص کنید، و اگه به درستی تصاویرتون رو وارد کرده باشید، می‌بینیدشون.

۴.هر ردیف قراره یه متن داشته باشه که نام دانشگاه درش نوشته بشه، پس یه نمای‌متنی (TextView) هم وارد صفحه می‌کنیم و کنار نمای‌تصویر می‌ذاریم. الان تصویرمون در کنار متن اینطوریه که به نظر خیلی مطلوب نمی‌یاد

می‌تونیم یه کم ویژگی‌های متن رو تغییر بدیم، مثه اندازه، فاصله از بالای صفحه و سمت راستش و ...

۵.به فایل MainActivity.java (در src) می‌ریم. در آموزش قبل یک آرایه‌ی‌وفق‌دهنده درست کرده بودیم:

setListAdapter (new ArrayAdapter <String> (this,
android.R.layout.simple_list_item_1,
getResources ().getStringArray(R.array.daneshgah)));

حالا باید برای این فهرست سفارشی‌مون خودمون کلاس وفق‌دهنده (Adapter) بسازیم. پس کلمه ArrayAdapter رو به AdaptereMan تغییر می‌دیم (می‌دونم که هنوز کلاسشو نساختیم). حالا زیر کلمه AdaptereMan خط قرمز می‌کشه و وقتی ctrl+1 رو بزنید بهتون پیشنهاد می‌ده که اون کلاس رو بسازید، ولی ما خودمون می خوایم اون کلاس رو بسازیم. اما همین کد قبلی رو یه تغییر دیگه هم باید بدیم و اون اینه که یه ورودی دیگه قبل از getResources اضافه کنیم و اون هم شناسه (Id) اون نمای‌متنی هست که قراره نوشته‌های هر ردیف درونش قرار بگیره. پس کد اینطوری می‌شه:

setListAdapter (new AdaptereMan <String> (this,
                android.R.layout.simple_list_item_1, R.id.textView1,
                getResources ().getStringArray(R.array.daneshgah)));

۶.می‌تونیم کلاس AdaptereMan رو توی همون کلاس اصلی‌مون بسازیم، البته اگه پروژه بزرگ باشه بهتره تو یه فایل جداگانه ساخته بشه ولی برای پروژه الان ما مشکلی ایجاد نمی‌کنه. در ضمن می‌خوایم که کلاسمون از ArrayAdapter توسعه پیدا کنه.

private class AdaptereMan extends ArrayAdapter <String> {

۷. وقتی کد بالا رو می‌نویسیم زیر نام کلاس خط قرمز می‌کشه و ازمون می‌خواد که یه سازنده برای کلاسمون ایجاد کنیم، اونی رو انتخاب می‌کنیم که ۴ تا ورودی به این ترتیب داشته باشه : محتوا، عدد صحیح (int)، عدد صحیح و فهرستی از نوع رشته (<list <string)

 وقتی روش می‌زنیم سازنده رو برامون ایجاد می‌کنه و ما تغییرش نمی‌دیم چون داره سازنده ArrayAdapter رو پیاده می‌کنه، کاری که ما می‌خوایم بکنیم اینه که تابع getView رو دوباره‌نویسی (override) کنیم.

@Override
        public View getView (int makan, View convertView, ViewGroup parent) {
            // TODO Auto-generated method stub
            return super.getView(makan, convertView, parent);
        }

۸.تابع getView برای هر ردیف از فهرست صدا زده می‌شه. و زمانی که صدا زده بشه ما این انتخاب رو داریم که برای هر ردیف در فهرستمون چه چیزی رو نشون بدیم. در این مثال ما می‌خوایم این تابع رو تغییر بدیم تا در کنار نام هر دانشگاه، نشان مربوط به همون دانشگاه قرار بگیره. باید به اون نمای‌تصویر و نمای متنی یه طوری دسترسی پیدا کنیم و راهش اینه که از کلاس بازکننده‌صفحه‌بندی (LayoutInflater)‌ یه نمونه بگیریم و به عنوان ورودی بهش اون صفحه‌بندی که برای هر ردیف فهرست درست کردیم رو بدیم تا برامون بازش کنه و بتونیم تغییرش بدیم.  پس اون خط توضیحات (comment) رو از کد بالا پاک می کنیم و به جاش می‌نویسیم LayoutInflater bazkonande = حالا باید از یکی از خدمات سیستمی اندروید استفاده کنیم، به نام Context.LAYOUT_INFLATER_SERVICE.شرکت وب یونیک اصفهان پروژه های سئو سایت در اصفهان و برنامه نویسی موبایل برای سازمان ها و ارگان های مختلف انجام میدهد.

LayoutInflater bazkonande = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);

۹.یه نمونه از کلاس نما (View) می‌سازیم تا اطلاعات بازشده از صفحه‌بندی بالا رو بهش بدیم و اون نمای‌تصویر و نمای‌متنی رو ازش بکشیم بیرون و مقداردهی‌اش کنیم. اسمش رو radif می‌ذاریم و مساوی با bazkonande.inflate.

این تابع سه ورودی می‌خواد، شماره منبع چیزی که می‌خوایم بازش کنیم (همون صفحه‌بندیه)، گروه‌نما (همون والد این کلاس) و یه متغیر درستی\نادرستی که الان می‌ذاریمش نادرست.

View radif = bazkonande.inflate(R.layout.radife_fehrest, parent, false);

۱۰.خوب برای اینکه خود فهرستمون رو داشته باشیم یه آرایه‌ی‌رشته‌ای محلی تو همین کلاس درست می کنیم و مقادیر اون فهرست رو می‌ریزیم توش. (برای راحتی کار با فهرست)‌ اینطوری:

String [] radifha = getResources ().getStringArray(R.array.daneshgah);

حالا وقتشه که از اون نمای‌متنی و نمای‌تصویری مربوط به هر ردیف ارجاع بگیریم تا بتونیم تغییرشون بدیم. خیلی ساده مثل قبلنا:

ImageView tasvir = (ImageView) radif.findViewById(R.id.imageView1);
TextView matn = (TextView) radif.findViewById(R.id.textView1);

۱۱.متنی که نمای‌متنی باید نمایش بده رو باید از اون آرایه‌ی رشته‌ها در بیاریم. اینکه الان در مکان کدام عنصر از آرایه هستیم رو اولین ورودی تابع getView مشخص می‌کنه به اسم makan. پس:

matn.setText (radifha[makan]);

تصویری که نمای‌تصویر باید نمایش بده بر حسب نوشته است، یعنی یه سری عبارت شرطی می‌ذاریم و بررسی می‌کنیم نمای‌متنی چه عبارتی رو داره نشون می‌ده و با توجه به اون تصویر مناسب رو تو نمای‌تصویری بارگزاری می‌کنیم. اما چون متن ما فارسی بوده قبول نمی‌کنه که تو عبارت شرطی فارسی بنویسیم، یعنی این‌طوری:

if (radifha[makan].equals("دانشگاه صنعتی شریف"))
        tasvir.setImageResource(R.drawable.sharif);

به خاطر همین می‌تونیم با توجه به مکانی که اون عنصر آرایه داره تصویرش رو مشخص کنیم:

if (makan == 0)
    tasvir.setImageResource(R.drawable.kntu);
else if (makan == 1)
    tasvir.setImageResource(R.drawable.iust);
else if (makan == 2)
    tasvir.setImageResource(R.drawable.sharif);
else if (makan == 3)
    tasvir.setImageResource(R.drawable.aut);
else if (makan == 4)
    tasvir.setImageResource(R.drawable.ut);

برای خروجی تابع هم فقط هم radif رو برگردونیم کافیه.

زیر AdaptereMan که اول استفاده کردیم یه خط قرمز کشیده، روش موس رو نگه می‌داریم و گزینه remove type argument رو می‌زنیم، بعد زیر کل ورودی‌ها خط قرمز می‌کشه، موس رو روش نگه می‌داریم و گزینه change constructor رو می‌زنیم. پس کلا کلاسمون این‌طوری می‌شه:

private class AdaptereMan extends ArrayAdapter <String> {

    public AdaptereMan(Context context, int resource,
            int textViewResourceId, String[] strings) {
        super(context, resource, textViewResourceId, strings);
        // TODO Auto-generated constructor stub
    }
       
    @Override
    public View getView (int makan, View convertView, ViewGroup parent) {
    LayoutInflater bazkonande = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    View radif = bazkonande.inflate(R.layout.radife_fehrest, parent, false);
    String [] radifha = getResources ().getStringArray(R.array.daneshgah);
           
    ImageView tasvir = (ImageView) radif.findViewById(R.id.imageView1);
    TextView matn = (TextView) radif.findViewById(R.id.textView1);
           
    matn.setText (radifha[makan]);
           
    if (makan == 0)
        tasvir.setImageResource(R.drawable.kntu);
    else if (makan == 1)
        tasvir.setImageResource(R.drawable.iust);
    else if (makan == 2)
        tasvir.setImageResource(R.drawable.sharif);
    else if (makan == 3)
        tasvir.setImageResource(R.drawable.aut);
    else if (makan == 4)
        tasvir.setImageResource(R.drawable.ut);
   
    return radif;
    }
}

وقتی برنامه رو تو شبیه‌ساز دیدم این شکلی بود

به نظرم اومد بهتره برای radife_fehrest.xml از صفحه‌بندی نسبی استفاده کنم تا بتونم عکس و متن رو راست‌چین کنم به این صورت:

تغییراتی در ویژگی‌هاشون دادم:

نمای‌متنی:‌ textSize:14sp - margin:top:20dp - margin:right:5dp

  • nafis pornajar
  • ۰
  • ۰

اوایل آخرین دهه از قرن بیستم مصادف بود با ظهور یک زبان برنامه نویسی جدید به نام زبان برنامه نویسی جاوا. این زبان که توسط مبدعش جیمز گوسلینگ در ابتدا Oak یا بلوط نام گرفته بود، اولین زبان از خانواده زبان های برنامه نویسی بود که از ماشین مجازی برای اجرا شدن بهره می گرفتند. زبان برنامه نویسی جاوا ممکن است دیگر یک زبان برنامه نویسی جدید نباشد اما همچنان و به صورت بسیار جدی، جای خود را در میان زبان های برنامه نویسی قدیم و جدید به عنوان یک زبان علمی و تخصصی حفظ کرده است. جاوا به عنوان زبان برنامه نویسی رسمی در بسیاری از دانشگاه ها و مراکز آکادمیک کشورهایی چون آمریکا، کانادا، استرالیا، آلمان و فرانسه تدریس می شود و از اجرو قرب بسیار بالایی برخوردار است. جاوا زبان پیش فرض بسیاری از مراکز تحقیقاتی است و به عنوان یکی از زبان های رسمی مسابقات برنامه نویسی ACM مطرح می باشد. حقوق بالا و پرداخت بسیار خوب به برنامه نویسان جاوا سبب شد که این زبان در رده زبان های لوکس قرار گیرد و در برخی سال ها بالاترین سطح درآمد را به خود اختصاص دهد.

زبان جاوا را نمی بایست با جاوا اسکریپت اشتباه گرفت چرا که این تنها یک تشابه در نامگذاری است و زبان جاوا به هیچ عنوان یک زبان اسکریپتی نیست. اما با زبان جاوا (و تقریبا تمامی زبان های برنامه نویسی چه اسکریپتی و چه غیر اسکریپتی) می توان طراحی سایت کرد و اتفاقا برنامه نویسی وب با زبان جاوا بسیار پرطرفدار است. زبان جاوا یک زبان همه منظوره است که مهم ترین خصوصیت آن استقلال از سخت افزار و سیستم عاملی است که برنامه در نهایت می خواهد بر روی آن اجرا شود. این خصوصیت با شعار Write Once Run Anywhere معروف شده است. زبان جاوا برای پیاده سازی این موضوع از ماشین مجازی جاوا یا Java Virtual Machine استفاده می کند و می توان گفت ماشین مجازی جاوا میزبان برنامه نوشته شده به زبان جاوا خواهد بود و تمامی ارتباطات با بستر اجرا را خود انجام می دهد.

از زبان جاوا میتوان برای تولید نرم افزارهای موبایل استفاده کرد.
به طور کلی تمامی تکنولوژی های جاوا را می توان به دو بستر Java SE و Java EE تقسیم بندی نمود. بستر Java SE به همراه ماشین مجازی جاوا به شما اجازه می دهد تا یک برنامه جاوا تولید و اجرا کنید و در Java EE می توانید برنامه های نوشته شده را به روش های گوناگون به هم متصل کنید.

فارغ از سیستم عاملی که روی کامپیوترتان دارید، شما برای کامپایل و اجرای برنامه های جاوا به ابزاری به نام JDK نیاز دارید. JDK مخفف عبارت Java software Development Kit است و شامل ابزارهای مورد نیاز شما برای اجرای برنامه های جاوا می شود. این مجموعه شامل ابزاری به نام JVM یا Java Virtual Machine است که ماشین مجازی جاوا نام دارد و وظیفه ی کامپایل و اجرای کدهای شما را برعهده دارد. خود JVM هم شامل ابزارهای دیگری است. مثلا javac یا java compiler اختصاصاً وظیفه ی کامپایل کردن برنامه ها را برعهده دارد.JDK را باید دانلود کرده و نصب کنید، می توانید برای دانلود آن به آدرس زیر مراجعه کنید.
Java SE Downloads
در حال حاضر جدیدترین JDK جاوا نسخه ی 7 است. البته از آنجایی که اوراکل به ما لطف داشته، JDK را هم برای ما تحریم کرده و برای دسترسی به اون باید از همون روش هایی که خودتون بلدید استفاده کنید!
خب حالا که JDK رو دارید، می خواهیم درباره ی چگونگی تولید برنامه ی جاوا صحبت کنیم.
برای شروع باید کدهایتان را درون یک وایشگر متنی (Text Editor) بنویسید. به این کدها سورس کد گفته می شود. کدهایی که در ادیتو نوشتید را باید با پسوند java. ذخیره کنید. ادیتورهای معروف در لینوکس gedit ، vi ، emacs هستندو در ویندوز هم که notepad را همه می شناسید. البته ادیتورهای دیگری هم در دسترس هستند، مثل ++Notepad و ادیتورهای آنلاین مثل JEdit . البته برای اینکه راحتر برنامه را نوشته و اجرا کنید از نرم افزارهایی مثل NETBeans و IntelliJ IDEA استفاده کنید .
حالا نوبت کامپایل کردن کدی هست که با پسوند java. ذخیره کرده اید. کافیست خط فرمان را باز کنید(در ویندوز cmd و در لینوکس bash و در مک هم Terminal ) و با دستور cd به محلی بروید که فایلتان را در آنجا ذخیره کرده اید و دستوری به صورت javac FileName.java بنویسید. این دستور اگرکدهایتان خطایی نداشته باشند به آرامی آنها را کامپایل می کند و فایلی به صورت FileName.class به عنوان خروجی می دهد. اگر هم کدتان خطا داشت محل خطا و توضیحاتی برای آن نشان می دهد.

توجه: اگر دستور javac را زدید و با خطایی به صورت
javac is not recognized as an internal or external command, operable program or batch file
مواجه شدید کارهایی که می گویم را انجام دهید تا javac درست کار کند.
ابتدا به مسیری بروید که JDK را نصب کرده اید  ودر شاخه bin روی یکی از فایل ها راست کلیک کنید، مثلا همان فایل اولی، و بعد properties رابزنید و مسیری که جلوی Location می بینید را کپی کنید مثلا :
"D:\Program Files (x86)\Java\jdk1.6.0_20\bin" حالا روی My Computer راست کلیک کرده، Properties را باز کنید و از پنل سمت چپ این صفحه Advanced system settings را باز کنید.در این جا به تب Advanced روی ...Environment Variables کلیک کنید. در پنجره ی باز شده روی new بالای کلیک کنید و در کادر اول بنویسید Path و در کادر دوم هم همان مسیری که کپی کرده بودید را paste کنید.و بعد هم تمام پنجره ها را Ok کنید و حالا امتحان کنید که آیا javac درست کار می کند یا نه!

  • nafis pornajar