🎉 سال نو، مهارت نو، مشاوره رایگان نقشه راه برنامه نویسی (آفر ویژه ثبت نام قبل از افزایش قیمت 🔥)
۰ ثانیه
۰ دقیقه
۰ ساعت
۸ سید امیر حسین امینی
نمونه گیری و مقدار دهی
جامعه جاوا (اندروید) ایجاد شده در ۱۵ آذر ۱۳۹۸

سلام و خسته نباشید. دو تا سوال داشتم.

1-چرا ما وقتی که باید ازclass person نمونه بگریم باید تو class main این کارو انجام بدیم ایا نمیشه همون تو class person این کار انجام داد؟

2- دوباره وقتی ما میخوایم به متغیر‌های class person مقداری وارد کنیم چرا باید این کار تو class main انجام بشه آیا نمیشه همون تو class person مقدار دهی انجام بدیم؟

ممنون.

سلام همچنین 

کلاس Person


public class Person {
    int id;
    String lastName;
    String firstName;
    Person(/*Nothing*/){
        this.firstName="sajjad";
        this.lastName="tabesh";
    }
    Person(String fn, String ln) {
        this.lastName = ln;
        this.firstName = fn;
    }
    void printWelcomeMessage(Person object) {
        Person instance=new Person("SayedAmirHossein","Amini");
        System.out.println("hello " + instance.firstName + " " +instance.lastName + ", your id is " + id);
        instance= object;
        System.out.println("hello " + instance.firstName + " " +instance.lastName + ", your id is " + id);
    }
    void printWelcomeMessage() {
        System.out.println("hello " + firstName + " " + lastName + ", your id is " + id);
    }
}

بایدی وجود ندارد شما نوع داده ای به نام class Person دارید هر کجا نیاز بود از ان استفاده میکنید  تابع printWelcomeMessage را درکلاس Person در نظر بگیرید

    void printWelcomeMessage() {
        System.out.println("hello " + firstName + " " + lastName + ", your id is " + id);
    }

اگر به شکل زیر خوانده شود 

  
person.printWelcomeMessage();

 

firstnName,lastName,id نمونه instanceName نشان داده می‌شود  حالا اگر تابع printWelcomeMessage به شکل زیر تعریف کنیم 

    void printWelcomeMessage(Person object) {
        Person instance=new Person("SayedAmirHossein","Amini");
        System.out.println("hello " + instance.firstName + " " +instance.lastName + ", your id is " + id);
        instance= object;
        System.out.println("hello " + instance.firstName + " " +instance.lastName + ", your id is " + id);
    }

اگر به شکل زیر صدا زده شود 

person.printWelcomeMessage(person);

می بینید که خود شی هم به عنوان ورودی به تابع printWelcomeMessage فرستاده شده است همانطور که در بالاتر مشاهده کردید ما printWelcomeMessage ی را در کلاس تعریف کردیم که اگر ورودی از نوع کلاس Person گرفت ،در خود یک نمونه از نوع خود کلاس Person ایجاد کند و سازنده ای که دو مقدار ورودی میگیرد رو صدا بزند وfirstName,lastNameرا برابر آنها قرار دهد  وهمه مقادیر نمونه ای که در تابع ساختیم را در خط بعد  چاپ کردیم 

        System.out.println("hello " + instance.firstName + " " +instance.lastName + ", your id is " + id);

ودر خط بعد  نمونه ای که به عنوان ورودی در نظر گرفتیم (Person object)را در نمونه ای که در تابع ساختیم (Person instance)میریزیم ,

instance= object;

وهمه مقادیر را در خط بعد نمایش میدیم

        System.out.println("hello " + instance.firstName + " " +instance.lastName + ", your id is " + id);

میبینید که مقادیر شی که به عنوان ورودی به تابع ارسال شده است چاپ شده 

2.بله می‌تونید در خود کلاس هم صفت‌ها را مقدار دهی کنید   مثل سازنده زیر 

    Person(/*Nothing*/){
        this.firstName="sajjad";
        this.lastName="tabesh";
    }

در اینجا اگر شما نمونه ای ایجاد کنید به طور پیشفرض صفت‌های نوشته شده مقدار دهی می‌شوند 

 

مهرداد ۱۵ آذر ۱۳۹۸، ۰۹:۴۳

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

 ولی قطعا  اجرای اصلی برنامه درون کلاس Main اتفاق میافته و باید اونجا یک نمونه ساخت و اون نمونه رو بعنوان پارامتر ورودی به بدنه مثلا متد printWellcomeMessage فرستاد.

پژمان آزاد ۱۷ آذر ۱۳۹۸، ۲۰:۲۲

مجددا سلام

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

1.نحوه خروجي گرفتن از جاوا داک  در قالب Html  و گذاردن بر روي سايت براي رويت سايرين چگونه است؟

2.تفاوت مدل رفرنس ديتا تايپهاي پريميتيو با خودشون چي هست؟ و کجا‌ها استفاده ميشن؟تفاوت نحوه ذخيره سازي ديتا تايپهاي رفرنس و بيسيک در چيست؟

3.آیا در آینده در مورد نحوه معرفي و استفاده از متغيرهاي از نوع رفرنس Interface و ديتا تايپ Annotation صحبت میشه؟

 

ممنون از راهنمایی شما

پژمان آزاد ۱۷ آذر ۱۳۹۸، ۲۰:۲۷

سلام ?

1.کلاس زیر رو در نظر بگیرید 

package com.company;
/**
 * This is Main Class
 */
public class Main {
    Main() {
    }
    /**
     * this is test
     * @param args Nothing
     */
    public static void main(String[] args) {
        // write your code here
    }
    /**
     * Test second method
     */
    public void testMethod() {
    }
}

وقتی می‌خوام  از javadoc خروجی Htmlبگیرم در‌تر مینال :

F:\CodeDev\QA\src\com\company>javadoc Main.java

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

می تونید اینجا بیشتر بخونید

2.تکه کد زیر رو ببینید 

int x = 32;
ArrayList list = new ArrayList();
list.add(x);

This won’t work unless you’re using Java 5.0 or greater!! There’s no add(int) method in ArrayList that takes an int! (ArrayList only has add() methods that  take object references, not primitives.)

قبلتر از نسخه پنج  جواب نمی‌داد چون ()add فقط به عنوان ورودی شی می‌گرفت.  پایین رو ببینید 

String number = "5"

چطوری میشه  numberرو تبدیل به intکرد اگر به شکل زیر بنویسیم 

int newNumber = (int)number;

جاوا میگه 

 incompatible types: java.lang.String cannot be converted to int

نمیشه به int تغییر داد ولی اگر به شکل زیر بنویسی 

int newNumber = Integer.parseInt(number);

چیزی نمیگه و کارشو انجام میده میتونی لینک زیر رو هم یه نگاه بندازید 

لینک

یا بهتر از لینک

می تونید کتاب Head First Java ،صفحه 287 تقریبا تا 292 رو یه نگاهی بندازید 

3. این سوال رو نمی‌دونم   استاد  جواب این سوال رو میدونن ولی در کل بخونید جاوا رو 

مهرداد ۱۸ آذر ۱۳۹۸، ۱۱:۵۹

سلام خواهش میکنم , واینکه در حدی نیستم شما رو به شکل مطلوب راهنمایی کنم ولی 

1.1.geeksforgeeks.org/java

javatpoint.com/java-tutorial

واسه شروع ساده روان توضیح دادن 

2.1. اگر اهل مطالعه کتاب هستید 

 کتاب Head First Java

مباحث رو خیلی ساده توضیح دادن  

2.docs.oracle.com

حتما به مرجع خود جاوا رجوع کنید

واینکه اوایل برنامه نویسی حتی  بزرگای این  علم،  هیچ چیزی ازش نمی‌دوستند . پشتکار و تلاششون در این علم بوده که با بقیه متمایز شدن 

مهرداد ۱۹ آذر ۱۳۹۸، ۱۳:۵۲

??ممنون از شما

پژمان آزاد ۱۹ آذر ۱۳۹۸، ۱۴:۲۷

سلام این لینک میتونه مفید باشه...

generate a javadoc reference by intelliJ

 

https://www.jetbrains.com/help/idea/working-with-code-documentation.html#

احمدرضا سجادی مهر ۲۴ دی ۱۳۹۸، ۱۷:۰۶

سلام

دوست عزیز در مورد سوال اولتون

اینکه شما وقتی یه کلاس دارین نمیشه تو خود همون کلاس یه نمونه از اون کلاس بگیری چون سیستم ارور میزنه و از طرفی شما وقتی کلاسی رو تعریف میکنید اون کلاس رو واسه انجام کار خاصی تعریف میکنید و قراره که وظیفه خاصی رو واستون انجام بده و از طرفی کلاسMain کلاس اصلی پروژه شماست و هر عمل مهمی که میخواین انجام بدین کلاس main این کار رو واستون انجام میده و هسته اصلی محسوب میشه تقریبا و از کلاس که دارین باید در متد main یک نمونه بسازین

Reza Ahmadzadeh ۰۷ مرداد ۱۳۹۹، ۲۲:۴۲