سلام و خسته نباشید. دو تا سوال داشتم.
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. این سوال رو نمی دونم استاد جواب این سوال رو میدونن ولی در کل بخونید جاوا رو
سلام خواهش میکنم , واینکه در حدی نیستم شما رو به شکل مطلوب راهنمایی کنم ولی
واسه شروع ساده روان توضیح دادن
2.1. اگر اهل مطالعه کتاب هستید
کتاب Head First Java
مباحث رو خیلی ساده توضیح دادن
حتما به مرجع خود جاوا رجوع کنید
واینکه اوایل برنامه نویسی حتی بزرگای این علم، هیچ چیزی ازش نمی دوستند . پشتکار و تلاششون در این علم بوده که با بقیه متمایز شدن
سلام این لینک میتونه مفید باشه...
generate a javadoc reference by intelliJ
https://www.jetbrains.com/help/idea/working-with-code-documentation.html#
سلام
دوست عزیز در مورد سوال اولتون
اینکه شما وقتی یه کلاس دارین نمیشه تو خود همون کلاس یه نمونه از اون کلاس بگیری چون سیستم ارور میزنه و از طرفی شما وقتی کلاسی رو تعریف میکنید اون کلاس رو واسه انجام کار خاصی تعریف میکنید و قراره که وظیفه خاصی رو واستون انجام بده و از طرفی کلاسMain کلاس اصلی پروژه شماست و هر عمل مهمی که میخواین انجام بدین کلاس main این کار رو واستون انجام میده و هسته اصلی محسوب میشه تقریبا و از کلاس که دارین باید در متد main یک نمونه بسازین