NetBeans

שלום,

neatbeans היא סביבת פיתוח חינמית, קוד פתוח. התוכנה משלבת אפשרויות לפיתוח אפליקציות אינטרנט, סלולרי, חלונות, מק, לינוקס כאשר ניתן לפתח בה במספר שפו כגון: c, c++, java rbyץ

התוכנה משלבת בה המון המון כלים שעוזרים למפתח בפיתוח יעיל וקל ע"י עזרים מיוחדים שמג'נרטים את הקוד. הכלי ממשיך להתפתח וכל גירסא מוסיפה אופציות ותיקונים לגירסא הקודמת.

אתר הבית: http://netbeans.org/index.html

הורדה: http://netbeans.org/downloads/index.html

תמונה: 

מאת chenreuven פורסם ב-General

תפקיד JUnit + דוגמאות ולינקים

מה זה Junit?

זה למעשה כליפיתוח חופשי לג'אוה שמטרתו לבצע בדיקות. פשוטו כמשמעו הוא שכן יש תוכנית מסוימת שקיימות לה פונקציות שונות, המתכנת ירצה להריץ בדיקות שונות על הפונקציות שקיימות ולכן ניתן לבנות יחידות בדיקה ב- junit, שיחזירו לנו כפלט האם הבדיקה הצליחה או לא ובנוסף יחזירו תיאור על בעיית השגיאה עם קיימת כזו.

ההיתרונות של הכלי הם בכך שניתן להריץ סט של בדיקות שלא נמצאות בתלות עם הפרוייקט, קרי ניתן להריץ אותם בתוך ספרייה בתוך הפרוייקט ואף מחוץ לפרוייקט, רק חשוב לקשור בן בדיקה לבין פונקציה שנבדקת. יתר על כן ניתן להעביר את הבדיקות בין פרוייקטים שונים שכן כמו שאמרתי מקודם אין תלות וזה Stand Alone Unit.

הורדה: https://github.com/KentBeck/junit/downloads

מדריך להתקנה: http://www.vogella.de/articles/JUnit/article.html

מדריך קצר באנגלית: http://code.google.com/p/t2framework/wiki/JUnitQuickTutorial

 

מאת chenreuven פורסם ב-Java

JAVA| transient keyword

הסבר: מטרתה של המילה השמורה transient, הוא פשוט להגדיר משתנה מסוים שלא יבוצע עליו סיריאליזציה, קרי לא נעביר את המשתנה ב"צינור המידע". ניתן לקחת כדוגמא אובייקט שמועבר בסוקט מסוים, שבתוכו אחד מהמשתנים הוא transient, ז"א שבעת העברת האובייקט דרך הסוקט (כמובן יממש את ממשק הסיריאליזציה), המשתנה הספציפי הזה בתוך האובייקט לא יועבר.

אני אתן פה דוגמא דווקא של כתיבה לתוך קובץ, שגם מבצע סיריאליזציה לתוך הקובץ.

public class MainClass {

 

  public static void main(String[] argsthrows Exception {

 

    User a = new User("A""B");

 

    System.out.println("logon a = " + a);

 

    ObjectOutputStream o = new ObjectOutputStream(new FileOutputStream("User.out"));

 

    o.writeObject(a);

 

    o.close();

 

    Thread.sleep(1000)// Delay for 1 second

 

    ObjectInputStream in = new ObjectInputStream(new FileInputStream("User.out"));

 

    System.out.println("Recovering object at " new Date());

 

    a = (Userin.readObject();

 

    System.out.println("logon a = " + a);

 

  }

 

}

 

class User implements Serializable {

 

  private Date date = new Date();

 

  private String username;

 

  private transient String password;

 

  public User(String name, String pwd) {

 

    username = name;

 

    password = pwd;

 

  }

 

  public String toString() {

 

    String pwd = (password == null"(n/a)" : password;

 

    return "logon info: \n   username: " + username + "\n   date: " + date + "\n   password: "

 

        + pwd;

 

  }

 

}

 

 

תהנו 🙂
מאת chenreuven פורסם ב-Java, Types

Reflection – Constructor & Fields | חלק שלישי

היום אני אדבר על רפלקשיין בהקשר של השגת הקונסטרקטור והשדות מתוך אובייקט מסויים.

בסוף המאמר גם העליתי תוכנית לדוגמא.

למעשה כאשר אנחנו משיגים את הקונסטרקטור של אותה מחלקה, ניתן ליצור ממנו אובייקט ובעצם לבצע פעולות עליו.
————————————————————————— Constructor—————————————————————————
1. ראשית כל אנו צריכים להשיג את המחלקה(כמו שראינו בכתבה הקודמת, לינק).
קיימות 2 שיטות:
Class my_class = MyClass.class;
or
Class my_class = Class.forName("com.CrDiv.MyClass"); // Full pkg name!
2. Constructor:
ניתן לקבל את כל הקונסטרקטורים לתוך מערך של קונסטרקטורים, ראה 1.
ניתן לקבל קונסטרקטור ספציפי, ראה 2
חשוב לציין שאםלא נמצא שום קונסטרקטור אזי נזרק אקספשיין
NoSuchMethodException
1. Constructor constructor[] = my_class.getConstructor(); // מחזיר מערך של בנאים
2. Constructor constructor = my_class.getConstructor(String.Class); // קונסטרקטור מסוים שמקבל מחרוזת
3. Constructor Parameters:
ניתן לקבל את הפרמטרים מתוך הקונסטרקטור ע"י פעולה:
Constructor constructor = … // כמו למעלה
Class[] parameterTypes = constructor.getParameterTypes();
4. יצירת אובייקט
החלק החשוב הוא כמובן יצירת אובייקט מתוך המחלקה על מנת שנוכל להשתמש בו
//get constructor that takes a String as argument
Constructor constructor = MyObject.class.getConstructor(String.class);

MyObject myObject = (MyObject)constructor.newInstance("constructor-arg1");

————————————————————————— Fields ———————————————————————————-
1. get Fields
אנו נקבל מערך של שדות שקיימים בתוך המחלקה.
class my_class = .. // obtain class object
Field[] fields = my_class.getFields();
2. Get specific field:
Field field = my_class("somefield");
*יש להשים לב באם השדה לא קיים תזרק שגיאה
NoSuchFieldException
3. get Field Name
Field field = my_class("some_field");
String field_name = field.getName();
4. Field Type
Field field = my_class("some_field");
Object field_type = field.getType();
5. getter and setter – ניתן להשתמש בהם אחרי שהשגנו את השדה
Class my_class= MyClass.class
Field field = my_class.getField("someField");

MyClass objectInstance = new MyClass();

Object value = field.get(objectInstance); // Get value from objectInstance object

field.set(objetInstance, value);

זה סוף החלק השלישי, אני מקווה שזה עזר לכם יותר בהבנה של רפלקשיין ותפקודו.

קוד לדוגמא:

Reflection_Code

מאת chenreuven פורסם ב-General