• 0
مجدي محمود

دروس في البرمجة الكائنية OOP لجميع اللغات الكائنية

سؤال

بسم الله الرحمن الرحيم

مقدمة

,,,, ( Object-Oriented Programming (OOP ,,,

لغة تلتزم بقواعد البرمجة بواسطة الأهداف حيث وفرت كثير من الجهد الذي كان يبذل باستخدام البرمجة التقليدية ، حيث كانت البرمجة التقليدية توفر للمبرمج مكتبة من الدوال إضافة إلى تركيب تقليدي للبرنامج وعلى المبرمج أن يستعمل الدوال مع تركيب البرنامج لإنشاء التطبيقات مما يضطره لكتابة السطور الكثيرة أكثر من مرة ؛ لقد كانت وحدة بناء البرنامج هي الدالة .. في حين أتت البرمجة بواسطة الأهداف بفكرة جديدة هي إنشاء عناصر متكاملة تحتوي على بيانات ودوال هي أساس إنشاء البرنامج .. وبالتالي أصبحت وحدة بناء البرنامج وحدة كبيرة هي الفصيلة أو العنصر Object مما سهل واختصر الكثير .

شرح لبعض المصطلحات في OOP التي سيكثر الحديث عنها وهي ,,

  • الكلاس وهي عبارة عن البرنامج ككل او الوصف الرئيسي الذي تنحدر منه objects
  • كل Object يتبع الى كلاس معينة
  • Object عبارة عن شئ له صفات واساليب معينة خاصة به
  • Attribute الصفات للكلاس وكمان ال object
  • Methods الاساليب المستخدمة في الكلاس

oo.jpg

وبشكل عام يتكون الكلاس من ثلاث اجزاء وهي :

modifier className
{
//attribute
//Construtor
modifier  className()
{
}
//methods
}

1. المشيد او Constructor :

من المهم في OOP ان يكون في كل كلاس على الاقل اسلوب حتى نقوم بانتاج object لهذه الكلاس ولاساليب التي تقوم بعملية انتاج الابجكت للكلاس يسمى المشيد او Constructor واسمه لازم يكون نفس اسم الكلاس وهو (حتى نستطيع استخدامه عند فحص الكلاس واستخدام الاساليب او الصفات الموجودة في الكلاس)

وفي كل كلاس في الجافا حتى وان لم يضعه الشخص فانها تحتوي على Constructor

داخلي او ما يسمى ب Standard-Constructor اسم الكلاس و ()

2.الصفات . صفات الكلاس

3. الاساليب .

الصفات تكون على هذا الشكل او تعرف على هذا الشكل

modifier type atributte;

type :

  • int
  • double
  • float
  • char
  • String

هذا ال modifier ممكن يكون كالتالي في الاساليب والصفات وحتى الكلاسات

  • public : يمكن استخدام الاسلوب او الصفة المعرفة في public اينما يريد الشخص حتى في كلاس ثاني والكلاس المعرفة ببليك يستطيع استخدامها الشخص اينما يريد لذلك بكون دائما كبداية البرنامج public classname
  • private : الاساليب والصفات تستخدم فقط في الكلاس المعرفة فيها ويستحب دائما استخدامها
  • protected : الاساليب والصفات يتم استخدامها في الكلاس وكمان الكلاسات المشتقة من الكلاس الاصلي
  • static : الاساليب والصفات المعرفة بها تستخدم ايضا اينما يريد الشخص وتسمى وتسمى الصفة او المتغير المعرف بstatic ...classvariable
    ويسمى الاسلوب المعرف بstatic ...classmethod
  • final : الصفة والاساليب المعرفة ب final لا يجوز تغييرها يعني ثابت في البرنامج كله

وهناك الكثير من هذه modifier وهذه تستخدم بكثرة لذلك احببت شرحهن-

والاساليب تكون على هذا الشكل

modifier Type MethodName()
}
return Type;
{

modifier void  MethodName()
}
{

اسلوب مع void يجب ان لا يوجد return

اسلوب بدون void يجب يوجد return

وعندما يكون الاسلوب مع return لازم يكون التعريف للاسلوب نفس القيمة مع return مثل

public String getName()
{
return name;
}

تم تعديل بواسطه مجدي محمود
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

53 إجابة على هذا السؤال .

  • 0

واليكم هذا المثال مثلا لدينا طالب وصفاته ونريد تطبيق مثال عليه بحيث نجمع بين ذلك في كلاس معين كتطبيق للدرس السابق

public class Student
{
//الصفات
//Attribute
String name; //*
private String adress;
final int age;
/*
نضع الصفات جميعها هنا مثل ما نريد
*/
// Constructor المشيد

Student(String name/*here*/, String adress,int age)
{
/*this
نعني بها ان المقصود بها هو الصفة العامة للكلاس وليس الصفة في المشيد يعني بالعربي
this.name هي *
name هي here
وهكذا مع بقية الصفات
وممن الممكن وضع متغيرات اخرى ف المشيد  حتى ما يحدث لخبطة عن الشخص مثل
Student(String n, String a, int g){name=n;a=adress;age=a;}
*/
this.name   =name;
this.adress =adress;
this.age =age
}
/*
*/
// Methods  الاساليب
public String getName()
{
return name;
}
public void PrintAdress()
{
System.out.println("The Adress :"+adress);
}
public int getAge()
{
return age;
}
/*
ونضيف من الاساليب هنا ما نريد
*/
}

تم تعديل بواسطه مجدي محمود
1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

قبل ان نختم هذه المقدمة اريد ان اريكم كيف نقوم بفحص برنامج من هذا القبيل لنرى اذا كانت الاساليب والصفات تعمل ويفضل ان نقوم كتابة الكلاس لفحص البرنامج في ملف مستقل وساخذ المثال السابق Student.java ونسمي الملف لفحصه StudentTest.java

فمثلا لدينا كما في المثال السابق

public class Student
{
//Attribute
String name;
private String adress;
final int age;
// Constructor
Student(String name, String adress,int age)
{
this.name   =name;
this.adress =adress;
this.age =age;
}

// Methods  
public String getName()
{
return name;
}
public void PrintAdress()
{
System.out.println("The Adress :"+adress);
}
public int getAge()
{
return age;
}
}

برنامج الفحص هو كالتالي

public class StudentTest
{

public static void main(String [] args)

{

Student s = new Student("Majdi","Palestine","23");

System.out.println("The Name : "+s.getName());
s.PrintAdress();
System.out.println("The Age : "+s.getAge());

}
}

وهذا هو شرحه

public static void main(String [] args)

يجب ان يحتوي على هذه العبارة لاننا نريد هنا مخرجات يعبي تشغيل البرنامج

Student s = new Student("Majdi","Palestine","23");

هذه العبارة حتى يفهم المترجم اي كلاس نريد ان نفحصها بحيث يرجع الى الكلاس Student.java لل Constructor ويعطي الى كل صفة قيمتها المعطى هنا مثلا

name ="Majdi"
adress ="Palestine"
age =23

ويجب ان يكون هناك تطابق بين Constructor والصفات المعطى من حيث النوع والترتيب والعدد مثلا كتابة الاتي خطا

Student s = new Student(23,"Majdi","Palestine");

وكل ذلك يجب ان يكون عن طريق new

System.out.println("The Name : "+s.getName());
System.out.println("The Age : "+s.getAge());

لان الناتج من الاسلوب getName() الموجود في Student يكون عن طريق return يجب كتابة عبارة System.out.println() و classname.method يعني هنا s.getName() و s.getAge() نفسه ولكن النوع هنا يختلف وهو int

s.PrintAdress();

لان الناتج من الاسلوب s.PrintAdress() الموجود في Student يكون عن طريق void فكتابة عبارة System.out.println() خطا ولذلك نكتب classname.method يعني هنا s.PrintAdress()

والناتج سيكون بالطبع

The Name   : Majdi 
The Adress : Palestine
The Age     :23

وهذا هو الدرس الاول :) والسؤال خير طريقة للفهم واتمنى ان يكون هناك تفاعل وليس فقط كتابة وزيادة المواضيع

تم تعديل بواسطه مجدي محمود
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

1-أخي ما فائدة كلمة static فهي تستخدم مع المتغيرات ومع الطرق

2-بالنسبة للمشيد ما الفائدة منه قيل لي أنه يعطي الكائن قيم أولية لكن لم أفهم ماذا يعني ذلك وقد رأيت بعض الأخوة يضعونه خالياً من أي كلام وفي المثال جعلناه يشير إلى متغيرات مجالية feild فما هو السر في ذلك

وشكراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

1-أخي ما فائدة كلمة static فهي تستخدم مع المتغيرات ومع الطرق

static : الاساليب والصفات المعرفة بها تستخدم ايضا اينما يريد الشخص وتسمى وتسمى الصفة او المتغير المعرف بstatic ...classvariable

ويسمى الاسلوب المعرف بstatic ...classmethod

2-بالنسبة للمشيد ما الفائدة منه قيل لي أنه يعطي الكائن قيم أولية لكن لم أفهم ماذا يعني ذلك وقد رأيت بعض الأخوة يضعونه خالياً من أي كلام وفي المثال جعلناه يشير إلى متغيرات مجالية feild فما هو السر في ذلك

من المهم في OOP ان يكون في كل كلاس على الاقل اسلوب حتى نقوم بانتاج object لهذه الكلاس ولاساليب التي تقوم بعملية انتاج الابجكت للكلاس يسمى المشيد او Constructor واسمه لازم يكون نفس اسم الكلاس وهو (حتى نستطيع استخدامه عند فحص الكلاس واستخدام الاساليب او الصفات الموجودة في الكلاس)

ومن الممكن وضعه خالي او يشير الى كما قلت جعلناه يشير إلى متغيرات مجالية يعني على الحالتين صحيح ولكن في حال استخدام متغيرات كثيرة يفضل عدم تركه خاليا لانه عن طريقه سنقوم باعطاء كل متغير قيمته.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

إذاً أخي محمود هل يمكن اعتبار كلمة static مثل كلمة public بدون اختلافات ورجاء إذا كان هناك اختلاف توضيحه

وشكراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

يمكن اعتبار كلمة static مثل كلمة public بدون اختلافات

لا هناك فرق ولكن تتشابهان في التعريف ولكن هناك فرق بين الكلمتين

مثلا

static Typ Name;

تكون Name عبارة عن statically Variable يعني متغير للكلاس كله classvariable

مثلا لدينا المثال التالي

class Test
{  
 static  int i = 2;      
}

public class MyClass
{
 public static void main(String[] args)
 {
   System.out.print(Test.i);      
 }
}

يعني تستطيع استخدامها في كلاسات اخرى عن طريق ClassName.classvariable

اتمنى وضحت

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي الكريم مجدي إذا بتسمحلي أشرح أكتر معنى static

المشكلة أنني لا أعرف المصطلحات العربية المرادفة لبعض المصطلحات الأجنبية لذلك سأضعها كما هي وليترجمها من يريد أن يقرأ ما كتبت حسب ما يريد000

أولا كلمة static يمكن أن نعرف بها variable أو method فقط يعني لا يمكن أن ترى أبدا class معرف ب static إلا في حالة واحدة وهي Top-level nested classes والكلام عن Top-level nested classes سيأتي بوقته إن شاء الله بس إبقى متذكر أن كلمة static لا يمكن أن تأتي قبل class إلا في حالة واحدة وهي كما ذكرتها إذا كان الclass هو Top-level nested classes

وسأطلق اسم member على method or instance variable

عندما نعرف member على أنه من نوع static هذا يعني أن هذا الmember ينتمي إلى الكلاس عوضا عن أي instance من هذا الكلاس أي سيمكننا الوصول لهذا member حتى ولو لم نعمل object عن الكلاس الموجود فيه هذا member

يعني لا يوجد داعي أبدا أن نعمل instance عن الكلاس لحتى نستخدم هذا member

ونستطيع الوصول إليه عن طريق classname.membername

لكن إن عملت عدة instance عن الكلاس فإن جميع هذه الinstance سترى نسخة واحدة عن هذا المتحول

وللتوضيح سنرى هذا المثال00

class Frog {
static int frogCount = 0; // Declare and initialize static variable
public Frog() {
frogCount += 1; // Modify the value in the constructor
}
public static void main (String [] args) {
new Frog();
new Frog();
new Frog();
System.out.println("Frog count is now " + frogCount);
}
}

في هذا البرنامج عرفنا المتحولfrogCount على أنه من نوع static

وضمن الconstrucor زدنا المتحول ب 1 في كل مرة سيتم استدعاء هذا الconstructor

أي في كل مرة نعمل object عن هذا الكلاس00 برأيكم ماذا ستكون نتيجة البرنامج؟؟؟

   Frog count is now 3

هذا يعني جميع الinstance عن الكلاس رأوا قيمة واحدة للمتحولfrogCount وكل مرة عملنا instance عن الكلاس زاد قيمة هذا المتحول ب 1

طيب الأن ماذا لو عرفنا المتحول frogCount في نفس البرنامج السابق على أنه ليس من نوع static ماذا سيحصل للنتيجة برأيكم00

ستكون نتيجة البرنامج

 Frog.java:11: non-static variable frogCount cannot be referenced
from a static context
System.out.println("Frog count is " + frogCount);
^
1 error

ستكون النتيجة هي compiler error! إذا

static method لا يمكن أن يصل إلى nonstatic (instance) variable

طيب ماذا لو عدلنا بالبرنامج السابق

  class Frog {
static int frogCount = 0; // Declare and initialize static variable
public Frog() {
frogCount += 1; // Modify the value in the constructor
}
}
class TestFrog {
public static void main (String [] args) {
new Frog();
new Frog();
new Frog();
System.out.print("frogCount:"+Frog.frogCount); //Access static variable
}
}

كما قلنا سابقا يمكن الوصول الى المتحول من نوع static عن طريق اسم الكلاس0اسم المتحول

طبعا مو غلط لو وصلنا إلى المتحول عن طريق الreference لهذا الكلاس مثلا لوضعنا

 Frog f = new Frog();
int frogs = f.getFrogCount; // Access static method getFrogCount using f

يعني لو عرفنا الmethod getFrogCount بأنه من نوع static نستطيع الوصول إليه عن طريق reference لهذا الكلاس f مو غلط أبدا

بتمنى تكون توضحت فكرة static وبالأخير هذا تلخيص للا شياء التي لا يمكن تعرف ك static

■ Constructors

■ Classes

■ Interfaces

■ Inner classes

■ Inner class methods and instance variables

■ Local variables

أما الأشياء التي يمكن أن تعرف ك static هي

■ Methods

■ Variables

■ Top-level nested classes

تم تعديل بواسطه مجدي محمود
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الصفات التي يمكن أن يتصف بها الكلاس هي:

Access modifiers: public, and Default

( Nonaccess modifiers (including strictfp, final, abstract

طبعا هنالك نقاط أساسية يجب أن تعلمها وهي

1- يجب أن يكون هناك كلاس واحد معرف ب public لكل ملف

2-اسم الملف يجب أن يطابق اسم هذا الكلاس المعرف ب public

3-إذا كان الكلاس هو جزء من package فيجب أن يكون عبارة package هي أول عبارة ضمن البرنامج

4- إذا كان هناك عبارة(import) إدراج package ضمن البرنامج فيجب أن تكون بين العبارة السابقة وتصريح الكلاس class Classname

لح أشرح الأن Default Access ببعض الأمثلة00

عندما نعرف كلاس على أنه Default Access هذا يعني أن هذا الكلاس يمكن أن يرى فقط من الكلاسات هلي تقع بنفس الpackage للكلاس المعرف ب Default Access

في نقطة مهمة أن كلمة Default لا نضعها قبل الكلاس يعني بمجرد روأيتك لكلاس غير معرف بأي شىء فهذا يعني على أنه Default Access

بفرض لدينا الكلاس Beverage موجود ضمن الباكيج cert

   package cert;
class Beverage {
}

ثم عملنا كلاس آخر وليكن Tea ووضعناه ضمن الباكيج exam.stuff

وطبقنا مبدأ الوراثة(import) أي جعلنا الكلاس Tea يرث من الكلاسBeverage

  package exam.stuff;
import cert.Beverage;
class Tea extends Beverage {
}

ستكون نتيجة البرنامج هي

 >javac Tea.java
Tea.java:1: Can't access class cert.Beverage. Class or
interface must be public, in same package, or an accessible member
class.
import cert.Beverage;  

لأننا حاولنا أن نصل إلى الكلاس Tea من غير package وهذا ممنوع 00

ممكن أن نصحح الخطأ السابق مثلا بتعريفنا الكلاس Beverage بأنه من نوع public

فيصبح بامكاننا أن نصل الى الكلاس Beverage من أيpackage

تم تعديل بواسطه مجدي محمود
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كيفية عمل حزمة معينة Packages

package يتم عملها حتى يستطيع المبرمج استخدام الملفات او methods الموجودة في ال package في ملفات اخرى وهذا مثال ل package قمت بعمله اثناء تعلمي JAVA لغة جميلة جدا واتمنى ان تفهم عن طريق المثال

قبل كل شي تقوم بعمل ملف خاص ويكون اسمه نفس اسم ال package مثلا لقد قمت بعمل package واسميتها smile

C:\MyJava>mkdir smile

ولذلك يجب ا يكون الملف باسم smile

C:\MyJava\smile>

والان تقوم بكتابة جميع ال classes التي تحتاجها وتضعها في الملف

smile

قمت بكتابة ثلاث class

وهن comma

package smile;
public class comma{

public void COMMA()
{
System.out.println("   |");
}  
}                              

و Point

package smile;

public class Point{

public void point()
{
System.out.println("  . .");
}
}

و Line

package smile;

public class Line{

public void line(){

 System.out.println("  -_-");
}
}

من اجل فحص ال package واستخدامها في برنامج اخر

يجب ان يبدا البرنامج

import smile.*;

واسميته smily ويجب ان يوضع في directory اخر مثل

C:\MyJava>

import smile.*;

public class Smily{

public static void main(String [] args)
{
Point    p = new Point();
comma c  = new comma();
Line     l   = new Line();
p.point();
c.COMMA();
l.line();
}
}

فلقد قمت هنا باستخدام ال methods الموجودة في comma Point and Line

في Smily

يقوم smily برسم عبارة عن وجه ضاحك:)

تم تعديل بواسطه مجدي محمود
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بسم الله الرحمن الرحيم

جزاك الله خيرا أخي الكريم مجدي محمود على هذه الدورة الرائعة جعلها الله في ميزان حسناتك يوم القيامة

أخوك / لؤي (أبو العبد)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

هذه مجموعة من البرامج التجريبية والامثلة واذا كان لم يكن هناك اسئلة سانتقل الى الوراثة

public class Circle
{
private double radius;

Circle(double r)
{
radius = r;
}

double scale(){return 2*Math.PI*radius;}
double Area(){return Math.PI*radius*radius;}

}

public class Rectangle 
{

private double width;
private double height;

double Area_rectangle (){ return this.width*this.height;}
}

و هذا لعمل الفحص بحيث يمكن فحص اكثر من برنامج في نفس الوقت

في الحقيقة جميع الامثلة مثل بعضها المهم ان نفهم التالي من الشرح السابق

  • معرفة كيفية تسمية المتغيرات
  • معرفة الشكل العام للبرنامج
  • معرفة كيفية كتابة الاساليب والكونستركتور والصفات
  • معرفة كيفية الفحص لبرنامج معين

public class Test
{

public static void main(String [] args)

{
Circle  c = new Circle(3);
System.out.println("Scale :"+c.scale());
System.out.println("Area :"+c.Area());
Rectangle r = new  Rectangle ();
System.out.println("Area  Rectangle : "+r.Area_ rectangle());

}
}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي مجدي في البرنامج الأخير لم تجعل قيم إبتدائية للبرنامج

ولم تجعل هناك كنستراكتور لذا أظن أن البرنامج سوف يطبع صفراً لأن المتغيرات مجالية فسوف يقوم الكومبايلر بإعطائه قيمة صفر

الرجاء التصحيح إذا كان كلامي فيه خطأ

اللهم انفعنا بما علمتنا وعلمنا ما ينفعنا

وشكراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

تجعل هناك كنستراكتور لذا أظن أن البرنامج سوف يطبع صفراً لأن المتغيرات مجالية فسوف يقوم الكومبايلر بإعطائه قيمة صفر

صحيح وذلك للسبب التالي وفي كل كلاس في الجافا حتى وان لم يضعه الشخص فانها تحتوي على Constructor وفي هذه الحالة يسمى Default Constructor لان القيم ليست معطاة للمتغيرات فيعطي كل منها القيمة صفر

وهذا المثال مع ارقام

public class Rectangle 
{

private double width;
private double height;
Rectangle(double w,double h)
{
width =w;
height=h;
}
double Area_rectangle(){ return this.width*this.height;}
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
public class Test
{

public static void main(String [] args)

{
Rectangle r = new  Rectangle (3,6);
System.out.println("Area  Rectangle : "+r.Area_rectangle());
}
}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

,,,,,,,,الوراثة,,,,,,,,,Inheritance

هذا بعضه نقلته من هنا فقط لتجميع الموضوع على بعضه وسازيد عليه كمان

الوراثة في لغة الجافا باللغة الانجليزية

الوراثة

هي ان يقوم المبرمج باشتقاق class من class وتسمى ال class التي يقوم الشخص بالاشتقاق منها Superclass وال classes المشتقة منها Subclass بحيث يوجد صفات مشتركة بين Superclass و ال Subclass المشتقة منها وهذه الصورة توضح ذلك

inhe.jpg

واليكم هذا المثال الذي يعرفنا على الوراثة

قمت بكتابت ال Superclass وهي Baseclass

public class Baseclass{

//Atributtes
double x , y;
//Method
void setXY(double x, double y)
{
  this.x = x;
  this.y = y;
}
}

public class fromBaseclass extends Baseclass {
 //Methods
double mult()
{
  return x*y;
 
}
double div()
{
  return x/y;
}
double add()
{
  return x+y;
}
}

ال subclass fromBaseclass تقوم بميراث جميع ال atributtes وال Methods

الموجودة في Superclass Baseclass

مقدمة البرنامج لل Subclass يجب ان تكون على النحوالتالي

public class Subclass extends Superclass

وهذا كود بسيط لفحص ال برنامجين السابقين

public class Test{

public static void main(String [] args)
{

 fromBaseclass f = new fromBaseclass();
 f.setXY(4,5);
 System.out.println(" "+f.mult());
 System.out.println(" "+f.div());
 System.out.println(" "+f.add());
}

ال Constructor لا يتم ميراثه من Superclass الى Subclass لذلك عندما يريد الشخص استخدام ال constructor تاع Superclass في ال Subclass يجب استخدام كلمة super

مثال بسيط لاستخدام Super

public class Superclass{

int x;
Superclass(int x)
{
 this.x = x;
}
}

public class Subclass extends Superclass{

int h;
Subclass(int h,int x)
{
  super(x); // for the Constructor  Superclass(int x)
  this.h=h;
 
}
}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي مجدي

إذا كان عندي كلاس فيها اكم من يمثود

متى يتعين علي أن أضع لها public

وشكراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

إذا كان عندي كلاس فيها اكم من يمثود

متى يتعين علي أن أضع لها public

اذا كنت تود في استخدام هذه الاساليب في كلاس ثانية .

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بالنسبة لاستخدام static ممع المتغيرات المجالية

ما هو عملها ؟

أنا سمعت أني لما أغير على المتغير بغير على الأصل

بس لو غيرت عليه باستخدام object هل يتغير على الكلاس حتى بعد إزالة الobject باستخدام null

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بالنسبة لاستخدام static ممع المتغيرات المجالية

ما هو عملها ؟

بعد كل هذا الشرح عنstatic تسال ماهو عملها او ما هو قصدك ب المتغيرات المجالية

أنا سمعت أني لما أغير على المتغير بغير على الأصل

نعم الا اذا كان المتغير الاصل معرف ب final فلا يمكن تغييرها

أنا سمعت أني لما أغير على المتغير بغير على الأصل

بس لو غيرت عليه باستخدام object هل يتغير على الكلاس حتى بعد إزالة الobject باستخدام null

ما الذي تقصد بهذا السؤال ممكن يا اخي التوضيح اكثر حتى اقوم باعطائك الاجابة الصحيحة

*/لا يتغير المتغير ابدا الا اذا قمت انت بتغييره حتى اذا غيرت عليه استخدام object ثم تزيل الاوبجكت فاعتقد بان المتغير يعود الى القيمة الاصلية او صفر

/*

تم تعديل بواسطه مجدي محمود
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أخي أقصد بالمجالية field

أقصد بسؤالي عندما أقوم بحذف الأوبجيكت الذي غيرت فيه المتغير المجالي

وشكراً

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اذا كان لديك مثلا Object [] field يساوي اي شئ وبعدها قمت بساوة هذا Object ب null فانه يقوم بمسح القيم ووضع field =null

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اللاخ مجدي محمود

جزاك الله خير على هذه الدروس النافعه

انا مشترك جديد معكم وادرس لغه الجافا ارجو ان يزيد تواصلي معكم

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

اخي مجدي

في لغه c++نستعمل للادخال cn>>

اذا سمحت كيغ نستخدم الادخال في لغه الجافا

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم00

بالملف الرفق يوجد الmodifier عملته لكل شىء يمكن تعريفه بالجافا أرجو أن تسفيدوا منها طبعا يوجد أشياء لا تستخدم بشكل كبير لكن هلي بدو يقدم الفحص لازم يعرفها تماما 000

New Microsoft Word Document1.pdf

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

في لغه c++نستعمل للادخال cn>>

اذا سمحت كيغ نستخدم الادخال في لغه الجافا

import java.io.*;

public class Example

{
public static void main(String [] args)throws IOException
{
BufferedReader in = new BufferedReader( new InputStreamReader(System.in));
System.out.print("n= ");
int n = Integer.parseInt(in.readLine());
System.out.print("your Enter was :"+n);
}
}  

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .