Archives for 2009

Sun Java EE 6

On: Friday, 4 December 2009

What's New


rss icon

Explore NetBeans IDE 6.8 Release Candidate November 30, 2009
Explore NetBeans IDE 6.8 Release Candidate
The first IDE to offer support for the entire Java EE 6 spec! Highlights include improved support for PHP, Project Kenai, Maven, C/C++ and more. Download now.
November 25, 2009
Java Application Platform SDK Update 8 Now Available
This l atest free-for-use, production-ready SDK has been updated with Sun GlassFish Enterprise Server v2.1.1. The SDK bundles with Java SE (JDK) 6 have been enhanced with JDK 6 Update 17. Read the overview and download the SDKs now. Multilingual support is available.
November 20, 2009
Troubleshooting OpenSSO with Firefox Add-Ons: Part 5, Identity Provider Initiated Fedlet Single Sign-On
Use the Firefox web browser to explore an OpenSSO identity provider initiated fedlet deployment.

Training and Certification


Java EE Training
Find out about training for architects and web component, business component, and integration developers. Get training on Sun GlassFish Enterprise Server.

Certification Learn about various Sun certification courses for programmers and enterprise architects, preparation methods, and savings programs.


Support

Got Technical Questions? Get Answers. Sun Developer Expert Assistance provides online support services for programming and other technical issues. Learn more.

Need Help with Your App Server? Find out about support options for Sun GlassFish Enterprise Server.

Spotlight


Preview Java Platform, Enterprise Edition 6 Smaller, simpler, lighter. Try Enterprise JavaBeans Lite and the new and easy APIs for developing RESTful Web services. Download Java EE 6 SDK Preview and Java EE 6 Web Profile SDK Preview.


Community


GlassFish
GlassFish Participate in the community development of the GlassFish application server, which implements the newest features in the Java EE 5 platform.

Get the Aquarium Blog RSS Feed The Aquarium Get daily news from the GlassFish Community.

Get the Stories RSS Feed Stories Read about GlassFish in the real world.

Samples for Project GlassFish Developers can use and contribute to the sample applications that demonstrate Java EE technology using the Java EE SDK built by the GlassFish Community.

Java EE Forums Share information, locate tried solutions, and learn best practices for Sun products and technologies.

Open-Source Java Project Sun's Java implementation and Free Software unite.

Java Enterprise Community Here's the place to exchange ideas with other developers working with Java EE technologies



The Sun GlassFish Enterprise Server V3


 

 

At a Glance

  • Now Available: GlassFish v3 Preview, first implementation of forthcoming Java EE version 6
  • New! Subscriptions include Enterprise Manager for improved manageability and performance of GlassFish deployments
  • Ideal for service-oriented architectures and rich Internet applications utilizing Java EE, PHP, AJAX and JRuby
  • Fastest open-source application server, surpassing closed source market leaders
  • Sophisticated, easy-to-use centralized monitoring and management
  • Clustering for scalability and availability
  • Part of the Sun GlassFish Portfolio, a cost-effective, open Web application platform that combines the best of open-source software and support in a single package.
  • Read the GlassFish Enterprise Server Datasheet
  • More Features   
__________________________________


Discover GlassFish Enterprise Server

Discover more about the latest Java EE technology with Sun GlassFish Enterprise Server.


Watch the Video

_________________________________________

GlassFish


The GlassFish open-source application server is the Java Platform, Enterprise Edition (Java EE) reference implementation built for mission-critical enterprise deployments.
Sun GlassFish Enterprise Server enables customers to leverage the benefits of open source with an optional subscription that provides support, training credits, limited indemnification and more.

Perspectives


"GlassFish impressed us from the beginning, particularly because of its intuitive, Web-based management interface. Deploying existing applications was painless." Guillaume Bilodeau, Software Architect, Auchan

"We have excellent support from Sun and the GlassFish community. It really is remarkable." Greg Luck, Chief Architect, Wotif.com

Webinars


Java EE 6 Overview - See the new features of Java EE 6 in action. Learn how the advancements in technology and the ease-of-development features increase developer productivity and make Java EE 6 the ideal platforms for developers.

Guide to Migrating to GlassFish - Considering migrating to GlassFish? In this webinar hear about the verification tools and resources available and learn about the process to make the migration to GlassFish easy.

Spotlight

Press Release: Sun Announces New GlassFish Communications Server 2.0 and Key Customer Wins
A robust Java EE and Session Initiation Protocol (SIP) convergence platform, the new GlassFish Communications Server has key new features, including SIP session replication, rolling upgrade and Diameter support.
Introducing Enterprise Manager
GlassFish Enterprise Server subscribers enjoy improved manageability and performance monitoring of production deployments.
Learn more.
Sun Releases GlassFish Portfolio Enhancements
Includes LAMP and Portal Technology Updates and Supports the Preview of the Full Java EE 6 Specification
Introducing the GlassFish Tools Bundle for Eclipse
An easy-to-install, out-of-the-box Java EE developer experience for GlassFish users that prefer the Eclipse IDE.
IceSoft delivers Woodstock to ICEfaces Migration
Learn more about ICEfaces integration with GlassFish and WoodStock component migration.
GlassFish Portfolio Partners
Meet the GlassFish Portfolio Partners or learn how to become one.

GlassFish Enterprise Server ROI Calculator

See how much money you can save with GlassFish Enterprise Server over proprietary application servers.

Offers

Try a Sun Server with GlassFish for Free, Then Save 20% When You Buy
Test drive a Sun server running Sun GlassFish Enterprise Server free for 60 days. If you like it, buy it at 20% off list price. If not, return it - no strings attached. We'll even pay for shipping both ways. Take advantage of this limited-time offer.

Building an End-to-End Web Infrastructure


GlassFish Enterprise Server v2 delivers Java EE compliance, high-availability clustering, and centralized administration for mission-critical business logic in the enterprise.

اضافات لمتصفح Firefox أستخدمها وأنصح بتجربتها

On: Saturday, 24 October 2009






في كل يوم أقضي أغلب وقتي في استخدام الكمبيوتر وتصفح الانترنت لذلك من الضروري أن أستخدم متصفح قوي, سريع وآمن بنفس الوقت يريحني أثناء تصفحي للمدونات والمواقع الكثيرة التي أتابعها بشكل يومي. شخصيا أعتمد على متصفحFireFox في هذه المهمة لأنه يوفر لي جميع الخيارات والميزات التي أحتاجها ويوفر لي الكثير من الاضافات التي تجعل من تصفح الانترنت أسرع, أأمن, أكثر متعة و أكثر انتاجية. سأضع في هذا الموضوع الاضافات التي أستخدمها في متصفح فايرفوكس وأنصح الجميع بتجربتها واستخدامها أيضا, قد لاتحتاجها جميعا لكن من المؤكد أنك ستستفيد من بعضها.

بالنسبة لمستخدمي متصفحات الانترنت الأخرى مثل Opera يوجد لكمwidgets جميلة تضاف له لكني لا أستخدمها ولا أستخدم متصفح Opera كمتصفح أساسي بل أعتمد عليه كمتصفح ثانوي في بعض الأحيان, أما مستخدمي متصفح مايكروسوفت Internet Explorer أيضا يوجد لديكم ميزات لاتجدها في المتصفحات الأخرى.. بطئ شديد في تصفح الانترنت, ثغرات كثيرة لا تنتهي, لا يدعم المعايير القياسية لتطوير الويب, أكثر برنامج يعرض جهازك للاختراق أثناء تصفحك للانترنت والكثير من الأمور الأخرى لن تعلم بها الا عند استخدامك للمتصفح لفترات طويلة.. استمتع باستخدامه!

أتوقع أني خرجت عن الموضوع قليلا لذلك نرجع لفايرفوكس وأبدأ بذكر الاضافات التي أستخدمها:



1-NoScript : أول اضافة أقوم بتركيبها.. تحتوي هذه الاضافة على خصائص وميزات كثيرة تزيد من مستوى أمان المتصفح حيث تعمل على منع وفلترة سكريبتات الـ JavaScript وعندما تقوم بفتح أي موقع تخبرك الاضافة بالسكريبتات التي سيتم تنفيذها ولك حرية الاختيار بمنعها أو الموافقة عليها وتستطيع اضافة المواقع التي تريد لقائمة المواقع الموثوقة أو المحظورة واذا أردت تستطيع السماح بتنفيذ السكريبتات الموجودة في موقع أو صفحة لفترة معينة وحتى ايقاف عمل الاضافة بشكل كامل اذا أردت. يوجد للاضافة خصائص أخرى كمنع تنفيذ استغلالات ثغرات XSS التي تؤدي الى سرقة الكوكيز الموجودة في جهازك بالاضافة لميزات وخيارات كثيرة كمنع عرض ملفات الفلاش و حتى ايقاف الاعلانات في بعض الأحيان!


2-Adblock Plus : توقع أن اسم الاضافة واضح من اسمها وهذه ثاني اضافة أقوم بتركيبها.. وظيفتها حجب الاعلانات المزعجة المنتشرة في أغلب المواقع وللأسف الازعاج يكون في المواقع والمنتديات العربية تحديدا فغالبا تفتح الصفحة تفاجئ بعشرات البنرات الاعلانية المتحركة وبعضها يتطاير أمامك بالصفحة! تعتبر هذه الاضافة من أقوى الاضافات في هذا المجال ويوجد لها خيارات وفلاتر عديدة يمكنك تحديثها والتعديل عليها في أي وقت تريد. شخصيا لست ضد الاعلانات وأعلم أنها وسيلة لدعم الموقع لكن عندما تصبح الاعلانات مصدر ازعاج لي وتمنع تركيزي لن أتردد لحظة في ازالتها من متصفحي.. أما المواقع التي تحترم الزائر وتضع اعلانات بشكل غير مبالغ فيه ولا تستغل الزائر وتحوله لآلة كسب المال فهذه أضيفها لقائمة المواقع المسموحة فبالتأكيد ان لم تنفعني هذه الاعلانات لن تضرني وعلى العكس قد أستفيد منها في بعض الأحيان.


3-FireBug : ذا كنت مطور مواقع فمن المؤكد أنك ستحتاج لهذه الاضافة ولا غنى لك عنها.. تستطيع باستخدام هذه الاضافة تعديل وتحرير الصفحات وملفات الاستايل CSS و القيام بعرض التعديلات بشكل مباشر على المتصفح بعد ذلك يمكنك اعتماد التعديلات في الملفات الأساسية.. شخصيا استفدت من هذه الاضافة بشكل كبير خصوصا في تطوير مدونتي فسابقا كنت أستعين بمحرر نصوص خارجي أجري التعديلات على الملف وأقوم بحفظها ثم أرجع وأعرض الصفحة في المتصفح أما باستخدام هذه الاضافة الوضع اختلف وأصبح تطوير المدونة أسهل وأسرع.



4-WebDeveloper : هذه الاضافة خاصة بمطوري المواقع أيضا وتفيدهم بكثير من الأشياء حيث تقوم باضافة شريط أدوات جديد يحتوي على الكثير من الأدوات والخيارات التي تفيد مطوري المواقع وتسهل عملهم.. أستخدم هذه الاضافة مع الاضافة السابقة وأعتبرها مكملة لسابقتها مع العلم أن هذه الاضافة قادرة على القيام بنفس عمل الاضافة السابقة الى حد ما لكن Firebug أفضل وعملية أكثر. من الأدوات الجميلة التي توفرها هذه الاضافة اختبار درجة توافقية الموقع مع المعايير القياسية وتستطيع اعطائنا معلومات عن الصفحة وتصميمها بشكل مفصل بالاضافة للقدرة على التحكم بطريقة عرض الصفحة والصور بالاضافة للكثير من الأمور والأدوات الأخرى أترككم لتكتشفوها بأنفسكم.


5-DownThemAll : اذا كنت من هواة تحميل الملفات وتحتاج لاضافة متميزة وسريعة في التحميل تسهل عليك ذلك فهذه هي الاضافة الأنسب بلا شك. مدير تحميل الملفات الافتراضي بطيئ وليس عملي أما هذه الاضافة تقوم باضافة مدير تحميل ملفات جديد ومتطور لمتصفح Firefox وتحتوي على العديد من الميزات التي لا تجدها الا في البرامج المختصة في تحميل الملفات وشخصيا أستخدم هذه الاضافة عشرات المرات في اليوم الواحد وأحمل بواسطتها الملفات الصغيرة فقط التي لا يتجاوز حجمها 50 ميغا أما الملفات الكبيرة أستخدم برنامج خارجي مثل wget في نظام Linux و Flashget في نظام Windows.. ليس بسبب ضعف أو سوء بالاضافة بل لأني لا أحب اشغال المتصفح في تحميل ملفات قد يتجاوز حجمها الـ 1 GB.


6- Fast Video Download : كم مرة شاهدت مقطع أو شرح فيديو على موقع يوتوب مثلا أو في أي موقع آخر يعرض فيديو ولم تستطع من تحميله؟ بعد تجرتي لعدة اضافات تبين لي أن هذه الاضافة هي الأنسب والأسهل لهذه الأمور.. ففي ضغطة واحدة نستطيع تحديد مقطع الفيديو وملفات الفلاش التي يتم عرضها والقيام بتحميلها على الجهاز بمنتهى السهولة حيث ستقوم هذه الاضافة بوضع زر صغير في زاوية المتصفح وعندما تشاهد أي مقطع فيديو كل ماعليك هو الضغط على هذا الزر لتتمكن من تحميله, الاضافة بسيطة وسهلة الاستخدام ولقد استفدت منها كثيرا.


7-Abduction : أحيانا وأثناء قراءتي لاحدى المواضيع الطويلة أحتاج لحفظ فقرة صغيرة من الموضوع وفي بعض الأحيان أحاول حفظ الصفحة كاملة لكن عند فتحها من الجهاز لاتظهر بالشكل المطلوب بسبب نقص ملفات تنسيق الاستايل ولذلك بحثت عن اضافة تقوم بحفظ الصفحة على شكل صورة! وبهذه الحالة أستطيع حفظ أي موضوع أريده بشكل كامل وسرعة كبيرة (لن أنتظر حتى ينتهي حفظ الصفحة) وباستخدام هذه الاضافة أضمن عرض الصفحة بنفس الشكل والتنسيق الذي شاهدته على متصفحي وعلى أي نظام تشغيل. أيضا استفيد منها بأخذ صورة كاملة عن الموقع وتسهل علي عمل Screenshot وادخالها لبرنامج تحرير الصور وحفظها من جديد.

8-User Agent Switcher : من المعروف أن أي مدير موقع يستطيع معرفة معلومات عن زواره مثل الأيبي, النظام المستخدم, نوع المتصفح وباستخدام الجافا سكريبت يستطيع معرفة معلومات أكثر من ذلك تصل لمعرفة مقاس حجم الشاشة والوقت في جهازي!! لكن بطبيعتي لا أحب أن أعطي معلومات “صحيحة” عن جهازي/متصفحي أو النظام الذي أستخدمه لأحد عند استخدامي للانترنت لذلك أستخدم هذه الاضافة لتغيير الـ User Agent الخاص بمتصفح Firefox لأي شيء أريده واذا كنت من أصحاب المواقع أو المدونات لا تستغرب ان شاهدت في ملفات اللوج أني أتصفح موقعك باستخدام نظام Windows 95 مثلا أو أن Googlebot كتب تعليق في مدونتك!! ولأوضح الفكرة أكثر هذا هو الـ User Agent الخاص بمتصفح Firefox الاصدار 3.0.4 في نظام لينوكس توزيعة Fedora 10:



 Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/2008111217 Fedora/3.0.4-1.fc10
Firefox/3.0.4
 السطر السابق يظهر في ملفات اللوج الخاصة بالمواقع التي أزورها وكما هو واضح فلقد أعطى معلومات كثيرة عن جهازي مثل (نوع المتصفح, النظام, اللغة المستخدمة, التوزيعة واصدارها, اصدار المتصفح) يعني مابقي غير يكتب اسمي! لذلك أستطيع تغييره الى الـ User Agent الخاص بمتصفح Internet Explorer 7 في نظام Windows Vista مثلا ليصبح بالشكل التالي:


Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)


9-OhProxy - InBasic : قد تحتاج في احدى الأيام فتح صفحة محجوبة للاطلاع عليها بشكل سريع أو لأنك لاتريد ظهور IP جهازك بملفات اللوج في المواقع التي تزورها.. بهذه الحالة أنت لاتحتاج لبرنامج تستخدمه أو سيرفر VPN تقوم باعداده بل تتحتاج لمثل هذه الاضافة البسيطة! فهي تعتمد على المواقع التي تستخدم سكريبت PHProxy وتقوم بتحديث قائمة هذه المواقع باستمرار وبهذه الحالة تستطيع فتح أي صفحة محجوبة من داخل متصفحك بشكل عملي دون الحاجة للدخول للموقع واستخدام الـ WebProxy.


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


Why IBM’s Server Chief Got Busted

On: Monday, 19 October 2009


The United States government has accused Robert Moffat, IBM’s server chief, the guy who was negotiating to buy Sun, with betraying Sun’s financial position to Danielle Chiesi, an employee of New Castle Partners, a New York hedge fund, so she could trade on the insider information.

Moffat knew what Sun’s numbers were going to be because he was one of the nine IBMers doing due diligence at Sun this past January.

In a wire-tapped phone call Chiesi made to an unidentified person now cooperating with the government’s investigation she said, “IBM is looking at it as a takeover. The only reason my guy would know that is because it’s his deal. Like, he’s in bed with them….You see what I mean…not because he’s just speculating.”

The news that IBM was negotiating to buy Sun didn’t leak to the Wall Street Journal and hence to the world for another two months.

Armed with the foreknowledge allegedly provided by Moffat that Sun was going to beat the Street – top and bottom – when it reported its December ’08 quarter, New Castle bought Sun shares just hours before Sun posted its numbers on January 27 and made a $900,000 killing on the deal.

The government says Moffat had practice slipping Chiesi insider financial information. When the global economy started melting down last year, he had dinner with her in early September, before IBM’s quarter closed, and reassured her that IBM would pull it out. According to a taped phone call with an unidentified affiliate of New Castle, she said, “He’s saying, you know, [IBM’s] zSeries looks really good. He’s saying that everything looks fine but…it comes down to the…final last week. But he thinks right now that they are on track. As of right now he’s not even worried a little bit, I mean, we think we can beat the numbers this quarter.” Chiesi apparently held onto her position in IBM’s stock.

Then again this past January, when IBM was due to report the results of its December quarter and Chiesi had spoken with Moffat New Castle covered a short position in IBM stock and began picking up more shares.

The government tap found her explaining to the person who’s now a government witness, “I’m buying IBM going into the print,” Wall Street parlance for IBM posting its numbers. “If I wasn’t closer to the situation I’d be, I would so short this fucking thing. But I’m thinking they could beat, and they really could guide up….You know, my guy said easily they could, they could add 30 cents to the bottom line. Easily, easily. That’s what he says, to the bottom line in ’09….I don’t think anybody is talking about a beat this quarter.”

The government’s complaint notes that on January 20 IBM’s Q4 earnings beat analyst expectations by 25 cents and that it expected to do 27 cents better this year than last.

The FBI figures New Castle was up about $500,000 on Moffat’s information.

Some Java codes

On: Tuesday, 18 August 2009

دي باقي الأكواد الي احنا شرحناها و مطبقناش عليها

دا اول واحد عشان نطبع المثلث بال * بطرقة ال for

CODE: تحديد الكل


public class array
{
public static void main(String args[])
{
for(int x =0 ; x<=4 ; x++)
{
for(int y = 4 ; y>=4-x ; y--)
{
System.out.print("*");
}
System.out.println();
}
}
}




Using For



CODE: تحديد الكل

public class Astric
{
public static void main(String args[])
{
for(int x =0 ; x<=4 ; x++)
{
for(int y = 0 ; y<=4-x ; y++)
{
System.out.print("*");
}
System.out.println();
}
}
}




Using While

CODE: تحديد الكل


class While
{
public static void main(String args[])
{
int y=1;

while (y<=5)

{

int i =1;

while (i<=(6-y))

{

System.out.print("*");

i++;

} // End Of The While

System.out.println();

y++;

} // End of the First While
}
}





Using Do While

CODE: تحديد الكل

class while
{
public static void main(String args[])
{
int z=1;

do

{

System.out.println();

int i=1;

do {

System.out.print("*");

i++;



} while (i<=(6-z));

z++;

}while (z<=5);
System.out.println();
}
}



Using Switch To Print

CODE: تحديد الكل

import java
.util.Scanner;

class Switch {
public static void main
(String args[]) {

Scanner sc
= new Scanner(System.in);//create object from Scanner class
System.out.println("Enter Month Number :");
int month
= sc.nextInt();//read the number from the user (Like -----console.readeline();)

String season;
switch
(month) {
case 12
:
case 1
:
case 2
:
season
= "Winter";
break
;
case 3
:
case 4
:
case 5
:
season
= "Spring";
break
;
case 6
:
case 7
:
case 8
:
season
= "Summer";
break
;
case 9
:
case 10
:
case 11
:
season
= "Autumn";
break
;
default
:
season
= "Bogus Month";
}
System
.out.println("Month is in the " + season + ".");
}
}



Operator Using Scanner

CODE: تحديد الكل

import java
.util.Scanner;


public class Scanner
{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
System.out.println("Enter First Number :");
int x
= sc.nextInt();
System.out.println("Enter Second Number :");
int y
=sc.nextInt();
int z = x*y;
System.out.println("The Result Is :" + z);

}
}




Revers Word
CODE: تحديد الكل

public class Revers
{
public static void main(String[] args){
String s = "Java";
int length = s.length();
System.out.println(length);
for (int i=length-1;i>=0;i--)
System.out.print(s.charAt(i));
System.out.println();
}
}

OOP in java

ازيكوا ياشباب النهارده ان شاء الله منعانا درس سهل وبسيط ..... ان شاء الله هنتكلم عن OOP وللتنظيم فعناصر الموضوع
هتكون :

1-What IS Class ?
2- What iS an object?
3-What IS OOP?
4- Using Predefind Class
5- Access Modifiers





اولا : ماهو الكلاس (What is A class ) :

class
The term class is the blueprint or recipe from which the object is actually made, or “instantiated.”
يعنى بمعنى أخر " هو وعاء اللى بتكون موجوده فيه كل المتغيرات والاوبجكتات والميثودز
وطبعا الحاجات بنسميها Class Members
Class Members : IS Methods ,Varaibles Any Thing The Class
طيب لاحظ معى الجاة اللى جاية دى :
ازاى أعمل للكلاس instantiation يعنى ازاى أخد منه Object
CODE: تحديد الكل
Demo x =new Demo();

Demo ده اسم الكلاس اللى انا عايز أخد منه أوبجكت
x ده Refrence على الاوبجكت
CODE: تحديد الكل
new Demo();

ده اللى عمل Creat للــ Object فى Memory فى مكان اسمه Heap
اما X انتوا عارفين راحت فين طبعا فى Stack
طيب ناخد كمان مثال :

CODE: تحديد الكل
MyClass boop;

We are now familiar with this: The first “MyClass boop; ” makes a reference called .....boop

CODE: تحديد الكل
MyClass boop;

At this point, the reference called “boop” does not actually point to any existing object
Soon, it will point to an object of type MyClass, but now the object doesn’t exist


CODE: تحديد الكل
MyClass boop = new MyClass();

When this statement executes, the new keyword executes the default Constructor for MyClass, which actually creates an object in memory and assigns that reference to boop
The handle to that just-created object is given to the MyClass reference boop
Now boop points to the new MyClass object

طيب كده تمام

2- What IS an Object ?


علشان نعتعرف على الاوبجكت بنقول ان Object يحمل كده 3 كلمات

State
Behviour
identity

تعالوا مع بعض كده نعرف كل واحده هى عبارة عن ايه
1-State

ودى بيقولا عنها انها current Values
يعنى بالبلدى كده المتغيرات اللى تخص Object اللى انا أخذته وهتوضح لما ناخد عليها مثال

2-behviour

طبعا اى كان له سلوك وسلوك الاوبجكت (Method )
يعنى كل Object لهbehavior اللى هى Methods

• All objects that are instances of the same class share the same behavior.
They all have the same methods.

3-identity
لما انا اقول
CODE: تحديد الكل
Demo x=new Demo();

هنا الــ identity هى x
هنا الــ identity هى refrence

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

3- What Is OOP?


طبعا احنا قلنا فى اول مرة خالص ان من مميزات لغة الجافا انها تطبق مبادئ OOP طيب ايه هى المبادئ دى
احنا عندنا 3 مبادئ

1-Encbsulation
2- Inheritanc
3-polymorphism

أولا : Encbsulation
معناها (الكبسلة ) وتسمى ايضا (Information Hiding )
ودى انا اجمع كل الحاجات اللى عندى فى Class واحد واحمى الكلاس ده باخفاء المعلومات اللى فيه وطبعا احنا عرفناه بالتفصيل شويه
2- Inhiritance ( الوراثه ) :
بداية ياجماعة احنا قلنا ان العلاقة بين Classes 3 حاجات حد فيكوا فكرهم .......... ايوة تمام كده زى منتوا قلتوا بالظبط

Relationships Between Classes
• Classes can be related to each other in one of three alternative ways:
use
containment
inheritance



طيب
1- use
لما انا أخد Object من كلاس واحطه فى كلاس تانى كده بطبق حالتين (Use-Contain ) .

CODE: تحديد الكل
public class Hamada{

public static void main(String args[]){

Demo x=new Demo();

}
}


كده بقى Class Hamada ده بيطبق حالتين
USe لانه كده بيستخدم الكلاس Demo
Contain لانه يحتوى كده على الكلاس Demo بداخله

اما عن الحالة الثالثة فهى Inheritance
وعلشان نتعرف على النوع ده يتثنى لنا ان تعرف على بعض المصطلحات زى :
Superclass >>>>> Parent Class
Subclass>>>>>>> Child Class

A Subclass inherits the behavior and variables of the Superclass

the Superclass immediately above a Subclass is called its Direct Superclass

Finally, since the Subclass has everything the Superclass has, we can say


Every Subclass is also an
object of the Superclass

ازاى بعمل inheritanc

عن طريق طبعا keyword سمها extends

CODE: تحديد الكل
class A{

//here some methods and variables

}

class B extends A{

here i inhrit all methods and variables from the class A


}


ولكن طبعا مش كل Variables سيتم لها عملية الوراثة طب ليه
ده هيكون بناء على مبدا حجاة اسمها Access Modifier ان شاء الله هكمل الدرس النهارده وهنبدأ فى الجزء التانى بوضع امثلة على Inheritance




Java Team ------- The Third Lesson

On: Tuesday, 14 July 2009

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

اخبار السيشن بتاع انهرده ايه؟؟؟

انهرده هانكتب تلخيص عن الي اتقال انهرده في الكورس....

first we will take about Arrays

1)What is an array?

2)Array Job

3)First Type (One-Dimensional Array)

4)create array

5)How to fill array

6)Operations

7)hoe To Print?

8)How To Copy

____________________
First : What Is an array?

An array is a data structure that stores a collection of values of thesame type. You access each
individual value through an integer index. For example, if a is an array of integers, then a[i]
is the ith integer in the array.


احنا بداية عندنا ل Array دي بستخدمها لما يكون عندي اكتر من VAriable عاوز زي مايكون المهم مع بعض

و احطهم في مكان ورا بعض في ال Memory و لو عاوز ارجعهم بنادي عليهم بالأندكس بتاعهم في ال Memory

ولازم يكون ليهم نفس النوع من التعريف زي
double , int , float

__________________
Second : Array Job

تستخدم للتهيل في كتابة الكود

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

ففي الحاله دي هاتطر نعمل array ونديها عدد المتغيرات و النوع و هي تعمل create براحتها بقي

ثانيا : انا عاوز اعمل alocate لعدد العناصر دي في مكان معين في ال memory و يكونو ورا بعض فبنستخدم array

و لو عاوز انادي علي var معين بنادي عليه بالأندكس بتاعه

__________________
Third : First Type (One-Dimensional Array)

اول نوع هانتعامل معاه انهرده ألا و هو الـ المصفوفه اﻷحاديه...One-Dimensional Array

A one-dimensional array is, essentially, a list of like-typed variables. To create an array,
you first must create an array variable of the desired type.

يبقي عندنا كدا في اﻷول ان ال array اسان بتتكون من list من المتغيرات

اول حاجه عشان نعمل create لل array اننا نحدد النوع بتاع ال array دي

فمثلا:: عشان نعرف array
CODE: تحديد الكل
type var-name[ ];






احنا عندنا هنا اول حاجه ال Type بنعرف النوع بتاع ال array علي اساس اذا كان int , double , floate او اي نوع ...

متلا::هنعرف array من نوع int اسمها Java

في ال c# تكتب كده

CODE: تحديد الكل
int [] java


انما في الجافا عشان كودها لذيذ فينفع تتكتب بالطريقتين دول

CODE: تحديد الكل
int java[]



or



int []java


Ex.
CODE: تحديد الكل
الطريقه اﻷولي

int[] a = new int[10];

الطريقه الثانيه

int[] a = {1,3,5,2};




في طريقتين :



اﻷولي . اننا عرفنا array بتاخد و ادينلها عد ال parameters الي فيها و هم 10

و انها من النوع int و بتحجز 10 خانات متسلسله في الذاكره و كل خانه لها حجم 4-byte ولا تحتوي علي اي قيم

الثانيه . انا ندخل ال parameters رقم رقم زي ما موجد في الكود التاني

هنا بيحجز خانات بعدد القيم الموجوده عندنا يعني 4 خانات بس و كل خانه بيكون فيها رقم من الموجودين و حجمها من النوع int

********اهم نقطه في الموضوع ان كلمة new هنا تنعمل علي بناء Object عشان تحجز مكان في الذاكره********

_________________
fourth : Create array(Example)

في المثال الجاي

اولا هنعمل create ل array و نديها الSize بتاعها

ثانيا نشوف طريقتين ﻷدخال ال parametars

دا برنامج عاملين في array بتاخد 12 parameters

و بنحسب كل شهر من شهور السنه فيه كام يوم و نطبع قي اﻷخر الشهر دا فيه كام يوم


CODE: تحديد الكل
public class Array

{

public static void main(String args[])

{

int month_days[];

month_days = new int[12];

month_days[0] = 31;

month_days[1] = 28;

month_days[2] = 31;

month_days[3] = 30;

month_days[4] = 31;

month_days[5] = 30;

month_days[6] = 31;

month_days[7] = 31;

month_days[8] = 30;

month_days[9] = 31;

month_days[10] = 30;

month_days[11] = 31;

System.out.println("April has " + month_days[3] + " days.");

}


}


The OutPut Will Be
CODE: تحديد الكل
April has 30 days
.


الطريقه اﻷخري عشان ادخل بيها ال parametars وهي

CODE: تحديد الكل
class AutoArray

{

public static void main(String args[])

{

int month_days[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31,30, 31 };

System.out.println("April has " + month_days[3] + " days.");

}

}


و ليه الحق في اختيار اي طريقه تعجبني او الي انا شايف انها مناسبه....



_________________________________



ثانيا نكمل الجزء الباقي........
_______________
How To Copy Array
_______________

عشان نطبع array

اول حاجه.............
CODE: تحديد الكل
System.arraycopy(from, fromIndex, to, toIndex, count);




set up two
arrays and then copy the last four entries of the first array to the second array. The copy starts
at position 2 in the source array and copies 4 entries, starting at position 3 of the target.



احنا هنا مثلا عندنا method اسمها arraycopy من ال class الي اسمها System

الاول parametars فيها اسم ال array الي انا هاخد منا النسخه...
التاني parametars فبها عاوز اخد نسخه من بداية اﻷندكس رقم كام....
الثالث parametars اسم ال array الي انا هطبع فيها...
الرابع parametars لغاية الأندكس رقم كام....
الخامس parametars عدد ال parametars الي عاوز يا خدها كام...

مثلا عندنا الكود دا

CODE: تحديد الكل
public class mn

{

public static void main(String args[])

{

int[] smallPrimes = {2, 3, 5, 7, 11, 13};

int[] luckyNumbers = {1001, 1002, 1003, 1004, 1005, 1006, 1007};

System.arraycopy(smallPrimes, 2, luckyNumbers, 3, 4);

for (int i = 0; i <>

System.out.println(i + ": " + luckyNumbers[i]);



}

}


هيكون ال out put بتاعه بالشكل دا
CODE: تحديد الكل
0: 1001

1: 1002

2: 1003

3: 5

4: 7

5: 11

6: 13




هنا احنا حددنا انه هياخد من ال array الي اسمها small و انه هيبدأ من ال index التالت يعني الرقم الرابع و هيطبع في

ال array التانيه الي اسمها lucky هبدا يا خد اربع ارقام من بداية الرقم الرابع.....

Java Team ------- The Second Lesson

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

ازيكوا ياجماعة يارب تكونوا بخير النهارده ان شاء الله هنتكلم عن حاجة حلوة كده ولذيذه جدا وزى احنا متعودين هنكتب العناصر اللى هيدور خوليها الشرح :

1- Data Tybes
2-Variables
3-Structure Programming
(Loops - Conditions)

اولا : هنتكلم عن Data Tybes

بداية لازم نعرف ان Data Tybes دى نوعين :

Premitive and None Premitive

1-Premitive data Tybe
دى انواع البيانات اللى احنا عارفين حجمها زى مثلا :
Integers
Floating Point
Char ..........
وطبعا الحاجات دى بتتخزن فى مكان فى Memory اسمه Stack
2- None Premitive Data Tybe
دى انواع البيانات اللى احنا مش عارفين حجمها زى مثلا :
Objects - Classes
وطبعا الحاجات دى بتتخزن فى مكان فى Memory اسمه Heap

طيب لو جينا كده نفصل اكتر ونجمع شوية تفاصيل عن انواع البيانات
بلا بينا
زى ما الباشمهندس أحمد النهارده قال ان انواع البيانات
تنقسم تفصيليا الى أربعة انواع بنستخدمها
1- فصيلة الاعداد الصحيحة ( Integers ) :
وتحت هذا الاسم يندرج ثلاثة انواع اخرى الا وهى
Int >>>>>>>>> 4 byte >>>>>>>32 bit
short >>>>>>>>2 byte>>>>>>>>> 16 bit
Long>>>>>>>>>8 byte>>>>>>>>>64 Bit
Byte >>>>>>>>>> 1 byte >>>>>>>> 8 bit

طبعا ياجماعة أحنا عارفين ان Java Is Independant Platform
يعنى لو انا روحت عملت برنامج مثلا جمع رقمين وعملت مثلا متغير x من النوع Int
هتكون مساحة Int >>>>> 4 byte
على اى الة حاسب وعلى اى نظام تشغيل ثابته

بينما فى لغة C++
data tybe depends on the platform and The operatin system
يعنى فى مثلا
on 16 - bit processor integer is >>>>2 - byte
4byte <<<<<< on 32- bit processor integer is
يعنى المقصد انى أقول ان مساحة نوع البيانات متغيرة بتغير الالة اللى بشتغل عليها او بنغير نظام التشغيل بينما عندنا فى الجافا طبعا المساحة ثابتة

2-Floatin Point
بيقولك بقى ان اى رقم عشرى يعنى فيه حاجة اسمها الــ (fraction) ده الجزء العشرى يندرج تحت كلمة Floatin Point
Floatin Point is any number has a fraction
طيب تمام

ده بقى يه نوعين
Float >>>>>>>4 byte >>>>>>> 32 bit
Double >>>>>>8 byte >>>>>64 bit

Floating Numbers in code
1- float in code
CODE: تحديد الكل
float x=2.5 ; // this make error "

طيب والحل ايه
CODE: تحديد الكل
float x=2.5 f;

لاحظ وضع حرف f بعد الرقم حتى يتعرف الــCompiler على ان هذا الرقم Float وليس.... ( هقولك فى أخر الشرح ) :?: :?: :?:
2- double in code
لو أنا مثلا عايز أكتب متغير x من النوع double
CODE: تحديد الكل
double x= 2.5;

وممكن كمان نكتبه كده
CODE: تحديد الكل
double x= 2.5d;

لاحظ وضع حرف d بعد الرقم

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

3- character
"char"
a single 16-bit Unicode character. It has a minimum value of '\u0000' (or 0) and a maximum value of '\uffff' (or 65,535 inclusive).


CODE: تحديد الكل
char x='b';//

ويوضع بين Single Quote
وللتوضيح اليكم هذا المثال :

CODE: تحديد الكل
public class Main {

public static void main(String[] args) {
char ch1 = 'a';
char ch2 = 65;
System.out.println("Value of char variable ch1 is :" + ch1);
System.out.println("Value of char variable ch2 is :" + ch2);
}
}
/*
Value of char variable ch1 is :a
Value of char variable ch2 is :A
*/


we use char to exoress Escape Sequence for special charcter
CODE: تحديد الكل
\b>>>>>>>> Backspacee
\n>>>>>> LineFeaad
\t>>>>>>>>>Tap
\"">>>>>>>> Double Qoute
\'>>>>>>> Single Qoute
\\>>>>>>> backslash



4- Boolean data Tybe
عبارة عن true ----- flase
used to evaluate Logical Conditons


ملاحظة :
فى لغة C++
0>>>>> flase
1 >>>>> true
ولكن عندنا مينفعش نعمل كده
we cant convert between Integers and Boolean values

يعنى ببساطة فى لغة C++
CODE: تحديد الكل
if (x=0) // this mean if (fales)


اما فى لغة الجافا :
CODE: تحديد الكل
if (x=0) // this make error


كده خلصنا او نقطة من الموضوع بتاعنا

_______________________________

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

2 - Varaibles

to declare variabe we should put The Data Tybe first Then put the name of the variable

تعالوا نعمل متغير اسمه x من النوع Int

CODE: تحديد الكل
int x;


ملحوظة :

varaible must Begin with Letter then Digits as you like
يعنى انا ممكن أعرف متغيرات كده

int x1,x2,x3;

ولكن مينفعش أعمل كده

CODE: تحديد الكل
int 1x,2x,3x; This is error



ملحوظة : يفضل اننا لما نعمل متغير انه يكون بيشير على نوع البيانات اللى هو منها ..........

programmers prefer to write the name of variable refer to its data tybe

CODE: تحديد الكل
String str_Name="hamada";


اسم المتغير (str_Name ) من النوع String


Initiilizing variable
after we declare the variable we should initilized it by assignment operator

يعنى لو انا عملت كده

CODE: تحديد الكل
public class Main {

public static void main(String[] args) {

int x;

System.out.println(x);



}

}


ده هيطلع Error
variable x might have been initilaized


ملحوظة هامه :
الفرق بين Declaration and Difinition

اولا : فى لغة Java
لا فرق بين الكلمتين

انا لما بعمل

CODE: تحديد الكل
int i=5;

نقول على العملية دى Decleration or Definirion

ثانيا : بالنسبة للغة C++

iهناك فرق شاسع الا وهو

CODE: تحديد الكل
int i ; // this called Decleration


CODE: تحديد الكل
int i=10; // this called Definition



,اخيرا فى هذه النقطة هنتكلم عن الثابت ( Constant) :

الثبت : معناه او استخدامه
اننا عايز ادى قيمة لمتغير ومغيرهاش وتفضل معاه وقت كبير سواء هستخدم هذه القيمة على مستوى Class واحد
او على مستوى البرنامج بتاعى

طيب استخدمه ازاى فى الكود بتاعى هنشوف مع بعض دلوقتى :
اولا : بنستخدم Keyword اسمها Final
final data tybe variable name = value

انا عاوز اعمل متغير ياخد قيمه ثابته من النوع int

CODE: تحديد الكل
final int x=10;

ملاحظات سريعة ولذيذه كده :

1 - يكتب اسم المتغير الثايت UPPERCASE يعنى حروفه كلها Capital
2- لو انا هستخدم أكتر من ثابت فى الربنامج بتاعى يفضل انى اعمل
class ونسميه Constants
ونضع فيه كل Constants ( الثوابت بتاعتنا )
بس بعرف الثابت كده

public static final datatybe = value

ناخد مثال ونشوف كده

CODE: تحديد الكل
class Constants02{

public static void main(String[] args){

System.out.println("pi = " + Constants.pi);

System.out.println("e = " + Constants.e);

}//end main

}//end class Constants02

//=======================================================//



class Constants{

public static final double pi = 3.14159; // Declaretion of the Constant

public static final double e = 2.71828; // Decleration of another constant

}//end class Constants


كده أحنا خلصنا الجزء بتاع Variables كاملا


_______________________


بسم الله الرحمن الرحيم تكملة للشرح بتاع زميلي شهبوب

ان شاء الله دلوقتي هانشرح ال

3-Structure Programming
(Loops - Conditions)

اول حاجه هانتكلم عن Loops

اول حاجه ان اللوب بتستخدم لما نكون عاوزين نكرر حاجه اكتر من مره

زي مثلا عندنا جمله مثلا عاوزين نطبعها اكتر من مره

احنا عندنا ثلاث جمل بنستخدمهم لما نيجي نعمل لووب

اول جمله و هي For تاني واحده While ثالثا Do While
__________
First : For

How To Write For?
CODE: تحديد الكل
for(Initial Value ; Limit ; Step)

{

Our Statements;

}






مثلا عاوزين نطبع كلمة Java اربع مرات هيكون الكود كالتالي

CODE: تحديد الكل
public class For

{

public static void main(String args[])

{

for(int x=0 ; x<4>

{

System.out.println("Java");

}

}

}




احنا هنا عرفنا متغير اسمه X عاي اساس انه int و ادينالو Initial Value بصفر

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

و تزيد بمقدار خطوه كل مره

Now We Take EX.

NastedFor

احنا دلوقتي عاوزين برنامج يطبع الكود بالشكل دا
CODE: تحديد الكل


*

**

***

****

*****



فالكود هيكو كالتالي

CODE: تحديد الكل
for(int x=0;x<=4;x++)



{



for(int j=0;i<=x ;j++)



{



System.out.print("*");



} // End Of For loop



System.out.println();



} // End Of For loop





احنا هنا في ال for اﻷولي عرفنا ال ء عادي و حطينا ال limit انه يكون اقل من او يساوي 4

ف دلوقتي هو كده دخل ال for دي بقيمه صفر هيبدا يخش دلوقتي علي الفور ال جوه

هيلاقي ان ال j بصفر و انه اصغر من x

هيعمل check لو لئي الصفر اقل من قيمة ال x هيطبع اول مره

و بعدين يخش من اﻷول علي الفور الأولي يخش بقيمه واحد

و يخش علي الفور الي جوه هيلاقي الواحد اقل من اربعه هيقو بادئ من اﻷول هينفذ صفر و واحد فيطبع مرتين

و هكذا كل مره هتزيد واحده لغاية لما الشرط خلص و يخرج بره الفورتين دول خالص


__________
Second :while Loop

اول حاجه نقول الفرق بين ال
CODE: تحديد الكل
While{



}



و ال

CODE: تحديد الكل
do{

}

While();


ان ال do while بتنفذ ال الشرط مره واحده علي اﻷقل قبل ما ابدا اعمل check علي الشرط

مثال
CODE: تحديد الكل
int x =10 , y = 0;

while(x!=0)

{

x--;

y++;

System.out.print(x );

System.out.println( y);

}


دا مثال هيطبع العد العكسي بتاع الx لغاية ما توصل ل 0
و الزياده بتاعة ال y لغية ماتوصل ل 10

مثال علي ال do while
CODE: تحديد الكل
int x =0 , y = 1;

do{

x+=5;

}

while(y==0);

System.out.println(x);


المفروض عندنا هنا مايطبعش حاجه خالص عشان الشرط مش متحقق الي هو

ان ال y==0 ﻷن عندي ال y =1

بس عشان دي do while هتنفذ الشرط مره واحده قبل ما تعمل check

عشان كدجا هيطبع عندي x=5 مره واحده بس

دا كدا شرح مبسط لجمل التلاته

________________
Second : Conditions
________________

في ال conditions

عندي جملتين اول جمله عندي هي ال IF تاني حاجه هي ال Switch

اولا ال if
CODE: تحديد الكل
if( condition mus br Boolean )

{

our code;

}


استخدمها لما اكون عاوز انفذ جمله معينه لو الشرط الي انا حطه اتنفذ يطبع الجمله دي لو ﻷ هيعديها ولا كانه شاف حاجه

مثال

CODE: تحديد الكل


int x = 5; // Try With x=4; and see answeer

if(x==5)

{

x++;

System.out.println(x);

}

else

{

x--;

System.out.println(x);

}



دا مثال انا مديله x=5 هيشوف اذا لقي ال x=5 هيزودها بواحد و يطبع

لو ملأهاش بخمسه هينقصها واحد و يطبع

تاني نوع من ال if هو ال nasted if

و هي اني لو عاوز اعكل check علي امتر من شرط هحط else if

مثال

CODE: تحديد الكل




int x = 5; // Try With x=4; and With x=6 see answeer

if(x<=4)

{

x++;

System.out.println(x);

}

else if(x>=6)

{

x*=6;

System.out.println(x);

}

else

{

System.out.println("Wrong");

}



int x = 5; // Try With x=4; and With x=6 see answeer

if(x<=4)

{

x++;

System.out.println(x);

}

else if(x>=6)

{

x*=6;

System.out.println(x);

}

else

{

System.out.println("Wrong");

}


في المثال السابق انا عامل شرطين اﻷول ان الرقم اقل من او يساوي اربعه
و
و التاني ان الرقم اكبر من او يساوي سته
لو طبع حاجه غير كده هيكتب كلمة Wrong

اخيرااااااااااااااااااا switch

هي تعتبر قريبه من ال nasted if

مثلا ناخد مثال فيه فصول السنه

هندخل قيمه معينه و نشوف ال cases بتاعتها

نخش في المثال احسن
CODE: تحديد الكل
int month = 4;

String season;

switch (month) {

case 12:

case 1:

case 2:

season = "Winter";

break;

case 3:

case 4:

case 5:

season = "Spring";

break;

case 6:

case 7:

case 8:

season = "Summer";

break;

case 9:

case 10:

case 11:

season = "Autumn";

break;

default:

season = "Bogus Month";

}

System.out.println("April is in the " + season + ".");



انا مدخل القيمه باربعه عيخش يدور في ال cases الي انا مدخلها لغية ما يلاقي ال ال case دي و ينفذها و بعدين يعمل break للباقي

ارجو ان الشرح يكون سهل و وافي و مكنش طولت عليكو


في اﻷخر احب اقول اهم حاجه الا وهي التاسكات

1) print stars
*
**
***
****
*****
*****
****
***
**
*

using for , while , do while

2) search how to take parameters from user

3)how to reverse word like (Java)
i need it print as

avaJ

ارجو اﻷهتمام بالتاسكات