SlideShare une entreprise Scribd logo
1  sur  60
Java
Programming




Logo
        Java дээр класс ашиглах
       багш Á.Ãàíçîðèã




          Улаанбаатар дээд сургууль
                  2011 он
Logo

  Агуулга
                   1   Классын удамшил


                   2   Байгуулагч функц, түүний хэрэглээ


                   3   Классын гишүүдийн хандалт


                   4   This заагч


                   5   Функц дахин тодорхойлох


                   6   Get, set функцүүд


                   7   Устгагч функц

Жава програмчлал                            Улаанбаатар Дээд Сургууль 2011 он
Logo
  Классын удамшил (inheritance)

 Java-н класс бүр ямар нэгэн классыг
  удамшуулсан байдаг.
 Удамшуулахдаа extends түлхүүр
  үгийг ашиглана:
       public class Car extends Vehicle{…
 Хэрвээ extends үгийг ашиглаагүй
  байвал java.lang.Object классаас
  удамшдаг.
Жава програмчлал                Улаанбаатар Дээд Сургууль 2011 он
Logo
  Классын байгуулагч функц (constructor)


 Классын обьектийг үүсгэн анхны
  утгыг нь олгоход хэрэглэгдэнэ.
 Обьектийг үүсгэх үед дуудагддаг.
 Класс дотор зарлагдана.
 Нэр нь классын нэртэй адилхан
  байна.
 Аргумент авч болох боловч утга
  буцаадаггүй.
Жава програмчлал          Улаанбаатар Дээд Сургууль 2011 он
Logo
  Классын байгуулагч функц (constructor)


 Нэг класст олон байгуулагч функц
  байж болно.
                          (Дахин тодорхойлолт= overloading)
  new                                  ClassName(
   argument1, argument2, …, arugmentN );
  new нь шинэ обьект үүсгэж байгааг илтгэнэ.
  ClassName нь ямар төрлийн обьект үүсгэж
   байгааг заана.
  Аргументууд нь классын энэ байгуулагч функцэд
   дамжуулагдана.
           • TestClass myObject = new TestClass();
           • TestClass myObject = new TestClass(1, 5, “test”);

Жава програмчлал                                  Улаанбаатар Дээд Сургууль 2011 он
Logo
  Классын хувьсагчид


 Классын хувьсагчид нь уг классын
  бүх функцүүдэд ашиглагдаж болно.
 Классын хувьсагчдийг классын эхэнд
  функцүүдийн өмнө зарладаг.
 Классын хувьсагчид нь хандалтын
  тодорхойлогчтой байдаг:
           • Public
           • Private
           • protected

Жава програмчлал         Улаанбаатар Дээд Сургууль 2011 он
Logo
  Классын хувьсагчид

 Public   хувьсагч:    ийм хувьсагчид
  програмд оролцож байгаа бүх классын
  функцүүд хандаж чадна.
           • public String name;
 Private хувьсагч: ийм хувьсагчид зөвхөн
  уг классын л функцүүд хандаж чадна.
           • private int age;
 Protected хувьсагч: ийм хувьсагчид уг
  классын    функцүүд   болон   түүнээс
  удамшсан классын функцүүд хандаж
  чадна.
           • protected int x;
Жава програмчлал                   Улаанбаатар Дээд Сургууль 2011 он
Logo
  Классын функцүүд

 Классын             функцүүд         нь
  public,    private,    protected  гэсэн
  тодорхойлогчтой байдаг.
 Хандах байдал нь адил.
 Хувьсагч болон функцүүдэд ингэж хандах
  эрхийг тавьж өгснөөр програм өндөр
  зохион байгуулалттай болдог.
           • Protected void add()


     (Тайлбар: хэн дуртай нь хаанаас ч хамаагүй хандаад
     байвал програм алдаатай болох боломж ихэсдэг)
Жава програмчлал                     Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ


 Time1 ба TimeTest классуудыг хийнэ.
      Public классууд нь тусдаа файлд байх
       ѐстой.
      Time1 класс нь өөрөө бие даан
       ажиллахгүй.
           • Main функцгүй
           • TimeTest класс нь (main функцтэй) Time1
             классын обьектийг үүсгэн ашиглана.



Жава програмчлал                      Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
                                                    Time1 класс нь Object
  import java.text.DecimalFormat;                   классаас удамшиж байна.
    public class Time1 extends Object {
      private int hour; // 0 - 23                      Private хувьсагчиддад зөвхөн уг
      private int minute; // 0 - 59                    классын функцүүд л хандаж
                                                       өөрчлөх, утгыг нь харах эрхтэй
      private int second; // 0 - 59                    байдаг
     public Time1()
     {                                                Time1 байгуулагч нь Time1
       setTime( 0, 0, 0 );                            классын обьектийг үүсгээд
     }                                                setTime функцийг дуудна.
     public void setTime( int h, int m, int s )
     {                                                    setTime функц нь классын
       hour = ( ( h >= 0 && h < 24 ) ? h : 0 );           private хувьсагчдад
       minute = ( ( m >= 0 && m < 60 ) ? m : 0 );         аргументаар орж ирсэн
       second = ( ( s >= 0 && s < 60 ) ? s : 0 );         утгуудыг олгоно.
     }


Жава програмчлал                                       Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
                                                     Эдгээр функцүүд нь
  public String toUniversalString()                  цаг, минут, секундийг янз янзын
     {                                               форматаар үзүүлнэ.
        DecimalFormat twoDigits = new DecimalFormat( "00" );

       return twoDigits.format( hour ) + ":" +
         twoDigits.format( minute ) + ":" + twoDigits.format( second );
      }
  public String toStandardString()
      {
        DecimalFormat twoDigits = new DecimalFormat( "00" );
        return ( (hour == 12 || hour == 0) ? 12 : hour % 12 ) + ":" +
          twoDigits.format( minute ) + ":" + twoDigits.format( second ) +
          ( hour < 12 ? " AM" : " PM" );
      }
    }


Жава програмчлал                                           Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
                                                            Time1 классын time обьектийг
  import javax.swing.JOptionPane;                           үүсгэж байна. =new Time1 мөр
    public class TimeTest1 {                                нь Time1 классын
       public static void main( String args[] )             байгуулагчийг дуудаж байна.
       {
          Time1 time = new Time1(); // calls Time1 constructor
     String output = "The initial universal time is: " +
          time.toUniversalString() + "nThe initial standard time is: " +
          time.toStandardString();                               TimeTest1 классаас Time1
        time.setTime( 13, 27, 6 );                               классын public функцүүдийг
        output += "nnUniversal time after setTime is: " +      ашиглаж байна.
         time.toUniversalString() +
         "nStandard time after setTime is: " + time.toStandardString();
       time.setTime( 99, 99, 99 );
       output += "nnAfter attempting invalid settings: " +
         "nUniversal time: " + time.toUniversalString() +
         "nStandard time: " + time.toStandardString();

Жава програмчлал                                          Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ

  JOptionPane.showMessageDialog( null, output,
          "Testing Class Time1", JOptionPane.INFORMATION_MESSAGE );
    System.exit( 0 );
           } // end main
    } // end class TimeTest1




Жава програмчлал                            Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ

 public class TimeTest2 {
     public static void main( String args[] )
        {
           Time1 time = new Time1();
          time.hour = 7;      // error: hour is a private instance variable
          time.minute = 15; // error: minute is a private instance variable
          time.second = 30; // error: second is a private instance variable
       }
  } // end class TimeTest2

 Классын private хувьсагчдад шууд хандах боломжгүй.




Жава програмчлал                                    Улаанбаатар Дээд Сургууль 2011 он
Logo
  This
  This нь тухайн обьектийг өөрийг нь хэлдэг.
  Хэрвээ класст өөрт нь байгаа хувьсагч нь өөр
   классаас удамшиж авсан хувьсагчтай ижил нэртэй
   байгаа бол this ашиглан миний хувьсагч гэж ялгаж
   өгөх байдлаар хэрэглэнэ.
  Мөн функцийн аргумент ба классын хувьсагчийг
   ялгахад хэрэглэж болно.
                   public class Test{
                     String id;
                     int counter;
                     public void init()
                     {
                        id = “object”;       this.id = “object”
                        this.counter = 0;    counter = 0;
                     }
                   }

Жава програмчлал                                  Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ

  import javax.swing.*;
     import java.text.DecimalFormat;
     public class ThisTest {
        public static void main( String args[] )
        {
          SimpleTime time = new SimpleTime( 12, 30, 19 );
          JOptionPane.showMessageDialog( null, time.buildString(),
            "Demonstrating the "this" Reference",
            JOptionPane.INFORMATION_MESSAGE );
          System.exit( 0 );
     }
   } // end class ThisTest
    class SimpleTime {                              SimpleTime класст
       private int hour;                            hour, minute, second
                                                    хувьсагчдыг зарлаж байна.
       private int minute;
       private int second;

Жава програмчлал                                      Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  public SimpleTime( int hour, int minute, int second )
       {
         this.hour = hour;     // set "this" object's hour
         this.minute = minute; // set "this" object's minute
         this.second = second; // set "this" object's second
       }
       public String buildString()
       {
         return "this.toStandardString(): " + this.toStandardString() +      toStandartString функцийг
                                                                             хоѐр янзаар дуудаж байна.
           "ntoStandardString(): " + toStandardString();
                                                                             Хоѐулаа адилхан юм.
       }
       public String toStandardString()
       {
         DecimalFormat twoDigits = new DecimalFormat( "00" );
         return twoDigits.format( this.hour ) + ":" +
           twoDigits.format( this.minute ) + ":" +
           twoDigits.format( this.second );
       }
  } // end class SimpleTime
Жава програмчлал                                                     Улаанбаатар Дээд Сургууль 2011 он
Logo
  Функц дахин тодорхойлох


 Класс дотор ижил нэртэй функцүүд байж
  болдог.
 Ийм функцүүд нь аргументаараа ялгагддаг.
 Ийм функцүүдийг дахин тодорхойлогдсон
  (overloaded) функцүүд гэдэг.
 Ижил нэртэй ижил аргументтай функцүүд
  байж болохгүй.


Жава програмчлал            Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
 import java.text.DecimalFormat;
 public class Time2 {
      private int hour; // 0 - 23
      private int minute; // 0 - 59
      private int second; // 0 - 59
     // Time2 constructor initializes each instance variable to zero;
     // ensures that Time object starts in a consistent state
 public Time2()                                                                  Аргументгүй
     {                                                                           байгуулагч функц
        this( 0, 0, 0 ); // invoke Time2 constructor with three arguments
     }                                                                            Нэг int аргументтай дахин
     // Time2 constructor: hour supplied, minute and second defaulted to 0        тодорхойлогдсон
  public Time2( int h )                                                           байгуулагч функц
     {
        this( h, 0, 0 ); // invoke Time2 constructor with three arguments
     }
         // Time2 constructor: hour and minute supplied, second defaulted to 0     Хоѐр int аргументтай
  public Time2( int h, int m )                                                     дахин тодорхойлогдсон
     {                                                                             байгуулагч функц
        this( h, m, 0 ); // invoke Time2 constructor with three arguments
     }
Жава програмчлал                                                      Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  // Time2 constructor: hour, minute and second supplied
       public Time2( int h, int m, int s )                            Дахин тодорхойлогдсон
       {                                                              гуравдах байгуулагч
         setTime( h, m, s ); // invoke setTime to validate time       функц. Гурван int
       }                                                              аргументтай байна.

      // Time2 constructor: another Time2 object supplied
                                                                       Time2 классын обьектийг
      public Time2( Time2 time )                                       аргументаараа хүлээж
      {                                                                авдаг дөрөвдэх
         // invoke Time2 constructor with three arguments              байгуулагч.
         this( time.hour, time.minute, time.second );
      }

      // set a new time value using universal time; perform
      // validity checks on data; set invalid values to zero




Жава програмчлал                                                  Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  public void setTime( int h, int m, int s )
     {
        hour = ( ( h >= 0 && h < 24 ) ? h : 0 );
        minute = ( ( m >= 0 && m < 60 ) ? m : 0 );
        second = ( ( s >= 0 && s < 60 ) ? s : 0 );
     }
     // convert to String in universal-time format
     public String toUniversalString()
     {
        DecimalFormat twoDigits = new DecimalFormat( "00" );

         return twoDigits.format( hour ) + ":" +
           twoDigits.format( minute ) + ":" + twoDigits.format( second );
     }




Жава програмчлал                                                     Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  // convert to String in standard-time format
       public String toStandardString()
       {
         DecimalFormat twoDigits = new DecimalFormat( "00" );

       return ( (hour == 12 || hour == 0) ? 12 : hour % 12 ) + ":" +
         twoDigits.format( minute ) + ":" + twoDigits.format( second ) +
         ( hour < 12 ? " AM" : " PM" );
       }
    } // end class Time2




Жава програмчлал                                          Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
 import javax.swing.*;
 public class TimeTest3 {
 public static void main( String args[] )                                 Өөр өөр байгуулагч
       {                                                                  ашиглан Time2 классын
        Time2 t1 = new Time2();           // 00:00:00                     обьектийг үүсгэж байна.
        Time2 t2 = new Time2( 2 );         // 02:00:00
        Time2 t3 = new Time2( 21, 34 );       // 21:34:00
        Time2 t4 = new Time2( 12, 25, 42 ); // 12:25:42
        Time2 t5 = new Time2( 27, 74, 99 ); // 00:00:00
        Time2 t6 = new Time2( t4 );        // 12:25:42

       String output = "Constructed with: " + "nt1: all arguments defaulted" +
         "n   " + t1.toUniversalString() + "n    " + t1.toStandardString();

       output += "nt2: hour specified; minute and second defaulted" +
        "n    " + t2.toUniversalString() + "n   " + t2.toStandardString();

       output += "nt3: hour and minute specified; second defaulted" +
        "n    " + t3.toUniversalString() + "n  " + t3.toStandardString();

Жава програмчлал                                                   Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  output += "nt4: hour, minute and second specified" +
            "n   " + t4.toUniversalString() + "n  " + t4.toStandardString();
 output += "nt5: all invalid values specified" +
            "n   " + t5.toUniversalString() + "n " + t5.toStandardString();
 output += "nt6: Time2 object t4 specified" +
            "n   " + t6.toUniversalString() + "n  " + t6.toStandardString();
 JOptionPane.showMessageDialog( null, output,
            "Overloaded Constructors", JOptionPane.INFORMATION_MESSAGE );
 System.exit( 0 );
      } // end main
 } // end class TimeTest3




Жава програмчлал                                      Улаанбаатар Дээд Сургууль 2011 он
Logo
  Үр дүн




Жава програмчлал   Улаанбаатар Дээд Сургууль 2011 он
Logo
  Get, set функцүүд


 Хандалтын функцүүд (“get” функц)
       Public функцүүд байдаг.
       Private хувьсагчийн утгыг авах
        боломжийг олгодог.
 Өөрчлөгч функцүүд (“set” функц)
       Public функцүүд байдаг.
       Private хувьсагчийн утгыг өөрчлөх
        боломжийг олгодог.

Жава програмчлал                 Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
 import java.text.DecimalFormat;
                                                                        Эдгээр private
 public class Time3 {
                                                                        хувьсагчдад бусад
     private int hour; // 0 - 23
                                                                        классын обьектуудаас
     private int minute; // 0 - 59
                                                                        шууд хандах боломжгүй.
     private int second; // 0 - 59
     // Time3 constructor initializes each instance variable to zero;
     // ensures that Time object starts in a consistent state
     public Time3()
     {
        this( 0, 0, 0 ); // invoke Time3 constructor with three arguments
     }
     // Time3 constructor: hour supplied, minute and second defaulted to 0
     public Time3( int h )
     {
        this( h, 0, 0 ); // invoke Time3 constructor with three arguments
     }
     // Time3 constructor: hour and minute supplied, second defaulted to 0
     public Time3( int h, int m )
     {
        this( h, m, 0 ); // invoke Time3 constructor with three arguments
     }
Жава програмчлал                                                 Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
   // Time3 constructor: hour, minute and second supplied
    public Time3( int h, int m, int s )
      {     setTime( h, m, s );      }
    // Time3 constructor: another Time3 object supplied
      public Time3( Time3 time )
      { // invoke Time3 constructor with three arguments
            this( time.getHour(), time.getMinute(), time.getSecond() );
      }
      // Set Methods
      // set a new time value using universal time; perform
      // validity checks on data; set invalid values to zero
      public void setTime( int h, int m, int s )
      {
         setHour( h ); // set the hour                                      Set функцүүдийн ачаар
         setMinute( m ); // set the minute                                  private өгөгдлийг өөрчлөх
         setSecond( s ); // set the second                                  боломжтой болно.
      }     // validate and set hour
      public void setHour( int h )
      {
         hour = ( ( h >= 0 && h < 24 ) ? h : 0 );
      }
Жава програмчлал                                                          Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
    // validate and set minute
      public void setMinute( int m )
      {
         minute = ( ( m >= 0 && m < 60 ) ? m : 0 );
      } // validate and set second
      public void setSecond( int s )
      {
         second = ( ( s >= 0 && s < 60 ) ? s : 0 );
      } // Get Methods
         // get hour value
      public int getHour()
      {
                                                  Get функцүүдийг ашиглан private
         return hour;                             хувьсагчийн утгыг харах
      } // get minute value                       боломжтой болно.
      public int getMinute()
      {
         return minute;
      }

Жава програмчлал                                           Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  // get second value
       public int getSecond()
       {
         return second;
       }

      // convert to String in universal-time format
      public String toUniversalString()
      {
         DecimalFormat twoDigits = new DecimalFormat( "00" );

          return twoDigits.format( getHour() ) + ":" +
            twoDigits.format( getMinute() ) + ":" +
            twoDigits.format( getSecond() );
      }



Жава програмчлал                                         Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
 // convert to String in standard-time format
     public String toStandardString()
     {
       DecimalFormat twoDigits = new DecimalFormat( "00" );

         return ( ( getHour() == 12 || getHour() == 0 ) ?
           12 : getHour() % 12 ) + ":" + twoDigits.format( getMinute() ) +
           ":" + twoDigits.format( getSecond() ) +
           ( getHour() < 12 ? " AM" : " PM" );
     }

  } // end class Time3




Жава програмчлал                                       Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
 import java.awt.*;
     import java.awt.event.*;
     import javax.swing.*;
 public class TimeTest4 extends JApplet implements ActionListener {
      private Time3 time;
      private JLabel hourLabel, minuteLabel, secondLabel;
      private JTextIField hourField, minuteField, secondField, displayField;
      private JButton tickButton;
      // create Time3 object and set up GUI                                   Time3 обьектийг
      public void init()                                                     зарлаж үүсгэж байна.
      {
         time = new Time3(); // create Time3 object
 // get applet's content pane and change its layout to FlowLayout
         Container container = getContentPane();
         container.setLayout( new FlowLayout() );
 // set up hourLabel and hourField                                      JTextFields нь хэрэглэгчид
         hourLabel = new JLabel( "Set Hour" );                         цагийг өөрчлөх боломж
         hourField = new JTextField( 10 );                             олгоно.
         container.add( hourLabel );
         container.add( hourField );
Жава програмчлал                                              Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  // set up minuteLabel and minuteField
         minuteLabel = new JLabel( "Set Minute" );       Минутын утгыг
         minuteField = new JTextField( 10 );             өөрчлөхдөө JTextFields
         container.add( minuteLabel );                   ашиглая.
         container.add( minuteField );

       // set up secondLabel and secondField
       secondLabel = new JLabel( "Set Second" );
       secondField = new JTextField( 10 );              Секундын утгыг
       container.add( secondLabel );                    өөрчлөхдөө JTextFields
       container.add( secondField );                    ашиглая.


       // set up displayField
       displayField = new JTextField( 30 );
       displayField.setEditable( false );
       container.add( displayField );


Жава програмчлал                                     Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
       // set up tickButton
         tickButton = new JButton( "Add 1 to Second" );
         container.add( tickButton );

        // register event handlers; this applet is the ActionListener,
        // which contains method actionPerformed that will be called to
        // handle action events generated by hourField, minuteField,
        // secondField and tickButton
        hourField.addActionListener( this );
        minuteField.addActionListener( this );
        secondField.addActionListener( this );
        tickButton.addActionListener( this );




Жава програмчлал                                    Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  displayTime(); // update text in displayField and status bar
 } // end method init
 // event handler for button and textfield events
       public void actionPerformed( ActionEvent event )
       {
         // process tickButton event
         if ( event.getSource() == tickButton )
            tick();

        // process hourField event
        else if ( event.getSource() == hourField ) {
           time.setHour( Integer.parseInt( event.getActionCommand() ) );
           hourField.setText( "" );
        }


Жава програмчлал                                     Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
 // process minuteField event
        else if ( event.getSource() == minuteField ) {
          time.setMinute( Integer.parseInt( event.getActionCommand() ) );
          minuteField.setText( "" );
        }

        // process secondField event
        else if ( event.getSource() == secondField ) {
           time.setSecond( Integer.parseInt( event.getActionCommand() ) );
           secondField.setText( "" );
        }
                                                TimeTest5 нь Time3-ийн
                                                private хувьсагчдийг
                                                өөрчлөхдөө Time3-н set
                                                функцүүдийг ашиглаж байна.


Жава програмчлал                                   Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
 // process minuteField event
        else if ( event.getSource() == minuteField ) {
          time.setMinute( Integer.parseInt( event.getActionCommand() ) );
          minuteField.setText( "" );
                                                TimeTest5 нь Time3-ийн private
        }                                       хувьсагчдийг өөрчлөхдөө Time3-н
                                               set функцүүдийг ашиглаж байна.
        // process secondField event
        else if ( event.getSource() == secondField ) {
           time.setSecond( Integer.parseInt( event.getActionCommand() ) );
           secondField.setText( "" );
        }




Жава програмчлал                                   Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  displayTime(); // update text in displayField and status bar

      } // end method actionPerformed

     // update displayField and applet container's status bar
     public void displayTime()
     {
        displayField.setText( "Hour: " + time.getHour() + "; Minute: " +
          time.getMinute() + "; Second: " + time.getSecond() );

       showStatus( "Standard time is: " + time.toStandardString() +
         "; Universal time is: " + time.toUniversalString() );

     } // end method updateDisplay


Жава програмчлал                                     Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  // add one to second and update hour/minute if necessary
     public void tick()
     {
       time.setSecond( ( time.getSecond() + 1 ) % 60 );

       if ( time.getSecond() == 0 ) {                         TimeTest5 нь Time3-ийн
          time.setMinute( ( time.getMinute() + 1 ) % 60 );    private хувьсагчдийг
                                                              авахдаа Time3-н get
                                                              функцүүдийг ашиглаж
         if ( time.getMinute() == 0 )                         байна.
            time.setHour( ( time.getHour() + 1 ) % 24 );
         }
      } // end method tick
   } // end class TimeTest4



Жава програмчлал                                      Улаанбаатар Дээд Сургууль 2011 он
Logo
  Үр дүн




Жава програмчлал   Улаанбаатар Дээд Сургууль 2011 он
Logo
  Үр дүн




Жава програмчлал   Улаанбаатар Дээд Сургууль 2011 он
Logo
  Үр дүн




Жава програмчлал   Улаанбаатар Дээд Сургууль 2011 он
Logo
  Агуулалт Composition


 Нэг класс өөр классын обьектийг
  зарлалтандаа ашиглаж болно.
       Энэхүү обьект нь уг классын хувьсагчтай
        адилхан болдог.




Жава програмчлал                Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
 public class Date {
      private int month;         // 1-12
      private int day;           // 1-31 based on month
      private int year;          // any year
 public Date( int theMonth, int theDay, int theYear )
     {
        month = checkMonth( theMonth );               // validate month
        year = theYear;                               // could validate year
        day = checkDay( theDay );                     // validate day

         System.out.println( "Date object constructor for date " + toDateString() );
     } // end Date constructor
      // utility method to confirm proper month value
      private int checkMonth( int testMonth )
      { if ( testMonth > 0 && testMonth <= 12 ) // validate month
           return testMonth;

Жава програмчлал                                            Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  else { // month is invalid
             System.out.println( "Invalid month (" + testMonth +
                ") set to 1." );
             return 1; // maintain object in consistent state
          }
       } // end method checkMonth
     // utility method to confirm proper day value based on month and year
       private int checkDay( int testDay )
       {      int daysPerMonth[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
      // check if day in range for month
          if ( testDay > 0 && testDay <= daysPerMonth[ month ] )
             return testDay;




Жава програмчлал                                              Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  // check for leap year
          if ( month == 2 && testDay == 29 && ( year % 400 == 0 ||
               ( year % 4 == 0 && year % 100 != 0 ) ) )
             return testDay;
        System.out.println( "Invalid day (" + testDay + ") set to 1." );
             return 1; // maintain object in consistent state
     } // end method checkDay

  // return a String of the form month/day/year
        public String toDateString()
        {
          return month + "/" + day + "/" + year;
        }
     } // end class Date




Жава програмчлал                                               Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
 public class Employee {
        private String firstName;
        private String lastName;
        private Date birthDate;
        private Date hireDate;
 public Employee( String first, String last, Date dateOfBirth,
         Date dateOfHire )
      {
         firstName = first;
         lastName = last;
         birthDate = dateOfBirth;
         hireDate = dateOfHire;
      }
 public String toEmployeeString()
      {
         return lastName + ", " + firstName +
            " Hired: " + hireDate.toDateString() +
            " Birthday: " + birthDate.toDateString();
      }
  } // end class Employee
Жава програмчлал                                                 Улаанбаатар Дээд Сургууль 2011 он
Logo
      Жишээ
      import javax.swing.JOptionPane;

     public class EmployeeTest {
     public static void main( String args[] )
          {
            Date birth = new Date( 7, 24, 1949 );
            Date hire = new Date( 3, 12, 1988 );
            Employee employee = new Employee( "Bob", "Jones", birth, hire );

           JOptionPane.showMessageDialog( null, employee.toEmployeeString(),
            "Testing Class Employee", JOptionPane.INFORMATION_MESSAGE );
             System.exit( 0 );
           }
        } // end class EmployeeTest

Date object constructor for date 7/24/1949
Date object constructor for date 3/12/1988

    Жава програмчлал                                       Улаанбаатар Дээд Сургууль 2011 он
Logo
  Устгагч функц Finalizer

 Java нь үйл ажиллагаагаа дуусгасан
  обьектуудыг автоматаар олж санах ойгоос
  чөлөөлдөг.
      • Garbage collection (хог цуглуулалт)
 Обьект санах ойгоос чөлөөлөгдөхөд түүний
  Finalize функц нь дуудагддаг.
      • Санах ойг системд буцааж өгнө.
      • java.lang.Object класс дотор байх finalize
        функцийг ашигладаг.
      • Аргументгүй
      • void функц

Жава програмчлал                       Улаанбаатар Дээд Сургууль 2011 он
Logo
  Статик хувьсагч

 Static түлхүүр үгийг ашиглана.
       Классын бүх обьектуудад ижил
        хэрэглэгддэг өгөгдлийг статик болгож
        ашигладаг.
       Классын бүх обьектууд уг өгөгдлийн
        хуваан эзэмшинэ.
       Хандахдаа КлассНэр.хувьсагчНэр
           • Math.pi



Жава програмчлал                Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  public class Employee {                                   Employee классын
                                                            обьектууд дундаа нэг
      private String firstName;
                                                            count гэсэн хувьсагчтай.
      private String lastName;
      private static int count = 0; // number of objects in memory

       // initialize employee, add 1 to static count and
       // output String indicating that constructor was called
      public Employee( String first, String last )
      {
         firstName = first;
         lastName = last;




Жава програмчлал                                      Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  ++count; // increment static count of employees
        System.out.println( "Employee constructor: " +
          firstName + " " + lastName );
     }
     // subtract 1 from static count when garbage collector
     // calls finalize to clean up object and output String
     // indicating that finalize was called
     protected void finalize()
     {
        --count; // decrement static count of employees
        System.out.println( "Employee finalizer: " +
          firstName + " " + lastName + "; count = " + count );
     }



Жава програмчлал                                     Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
  // get first name
        public String getFirstName()
        {
          return firstName;
        }
    // get last name
        public String getLastName()
        {
          return lastName;
        }
                                                 Статик хувьсагчид
    // static method to get static count value
                                                 статик функц ашиглан
        public static int getCount()             хандаж байна.
        {
          return count;
        }
   } // end class Employee


Жава програмчлал                                 Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
 import javax.swing.*;
 public class EmployeeTest {
     public static void main( String args[] )
        {        // prove that count is 0 before creating Employees
                                                                       EmployeeTest нь
         String output = "Employees before instantiation: " +
                                                                       Employee-н статик
           Employee.getCount();                                        функцийг обьект нь
   // create two Employees; count should be 2                          үүсээгүй байхад ч
         Employee e1 = new Employee( "Susan", "Baker" );               дуудаж чадна.
         Employee e2 = new Employee( "Bob", "Jones" );
    // prove that count is 2 after creating two Employees
         output += "nnEmployees after instantiation: " + "nvia e1.getCount(): " +
      e1.getCount() +
           "nvia e2.getCount(): " + e2.getCount() +"nvia Employee.getCount(): " +
      Employee.getCount();
    // get names of Employees
         output += "nnEmployee 1: " + e1.getFirstName() +
           " " + e1.getLastName() + "nEmployee 2: " + e2.getFirstName() + " " +
      e2.getLastName();
Жава програмчлал                                         Улаанбаатар Дээд Сургууль 2011 он
Logo
  Жишээ
// decrement reference count for each Employee object; in this
         // example, there is only one reference to each Employee, so these
         // statements mark each Employee object for garbage collection
         e1 = null;                                                     Java-н автомат
         e2 = null;                                                     garbage collection
                                                                        механизмийг дуудаж
       System.gc(); // suggest call to garbage collector
                                                                        байна.
        // show Employee count after calling garbage collector; count
         // displayed may be 0, 1 or 2 based on whether garbage collector
         // executes immediately and number of Employee objects collected
         output += "nnEmployees after System.gc(): " +
            Employee.getCount();
          JOptionPane.showMessageDialog( null, output, "Static Members",
     JOptionPane.INFORMATION_MESSAGE );
      System.exit( 0 );
      }                                           Employee constructor: Susan Baker
                                                  Employee constructor: Bob Jones
   } // end class EmployeeTest                    Employee finalizer: Susan Baker; count = 1
                                              Employee finalizer: Bob Jones; count = 0

Жава програмчлал                                           Улаанбаатар Дээд Сургууль 2011 он
Logo
  Үр дүн




Жава програмчлал   Улаанбаатар Дээд Сургууль 2011 он
Logo
  Даалгавар

 1. Лекц дээрх бүх жишээг ажиллуулан
    тайлбарыг нь монголоор (англи үсгээр
    галиглаж болно) хий.
 2. Доорх жишээг хийнэ:
       Классууд:
           • Хүн класс
                   –   Нэр
                   –   Нас
                   –   Хүйс
                   –   Тоо (статик)
           • Оюутан класс
                   – Мэргэжил
                   – Анги
                   – ДундажДүн

Жава програмчлал                      Улаанбаатар Дээд Сургууль 2011 он
Logo
  Даалгавар
  Оюутан класс нь Хүн классаас удамшина.
  Хэрэглэгчээс оюутны тоо, болон оюутан бүрийн
   мэдээллийг аваад оюутан обьектуудыг үүсгэнэ
   (байгуулагч функц, set функц) Оюутнуудыг массивт
   хийнэ.
  Бүх оюутны мэдээллийг хэвлэж үзүүл. (get функц)
  Бүх оюутнуудын дундаж дүнг тооцоолж хэвлэ.
  Нийт хэдэн оюутан байгааг үзүүл (статик хувьсагч)
  Оюутнуудыг дундаж дүнгээр нь эрэмбэлж гарга.




Жава програмчлал                  Улаанбаатар Дээд Сургууль 2011 он
Logo
  Шинэ үгс
  Inheritance:    Удамшил
  public:         Дурын классын функцээс
   хандаж болох хувьсагч болон функц.
  private:        Зөвхөн уг классын функцүүд л
   хандаж болох хувьсагч болон функц.
  protected:      Уг классын болон түүнээс
   удамшсан бусад классын функцүүдээс хандаж
   болох хувьсагч болон функц.
  Garbage collection: Java нь ашиглагдахгүй
   болсон обьектуудыг санах ойгоос олж түүний
   finalize функцийг дуудан уг обьектийг санах
   ойгоос чөлөөлдөг. Энэ процессийг хог
   цуглуулалт буюу garbage collection гэдэг.

Жава програмчлал               Улаанбаатар Дээд Сургууль 2011 он
Java
Programming




Logo




         Улаанбаатар дээд сургууль
                 2011 он

Contenu connexe

Tendances

U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
Badral Khurelbaatar
 
си хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиси хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р анги
enhsaran_tsahim
 
u.cs101 "Алгоритм ба програмчлал" Лекц №1
u.cs101 "Алгоритм ба програмчлал" Лекц №1u.cs101 "Алгоритм ба програмчлал" Лекц №1
u.cs101 "Алгоритм ба програмчлал" Лекц №1
Khuder Altangerel
 
U.cs101 алгоритм программчлал-1(1)
U.cs101   алгоритм программчлал-1(1)U.cs101   алгоритм программчлал-1(1)
U.cs101 алгоритм программчлал-1(1)
Badral Khurelbaatar
 
Small basic үзүүлэн
Small basic үзүүлэнSmall basic үзүүлэн
Small basic үзүүлэн
baterden
 
Ogogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lektsOgogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lekts
Алдарболд Э.
 
программ хангамжийн їндсэн ойлголт
программ хангамжийн їндсэн ойлголтпрограмм хангамжийн їндсэн ойлголт
программ хангамжийн їндсэн ойлголт
shulam
 

Tendances (20)

Лекц-3
Лекц-3Лекц-3
Лекц-3
 
C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1C++ vndsen oilgolt хичээл 1
C++ vndsen oilgolt хичээл 1
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
 
CS203 Лекц01 Prefeace
CS203 Лекц01  PrefeaceCS203 Лекц01  Prefeace
CS203 Лекц01 Prefeace
 
It101 lab9
It101 lab9It101 lab9
It101 lab9
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
 
си хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р ангиси хэлний хичээлүүд 11 р анги
си хэлний хичээлүүд 11 р анги
 
u.cs101 "Алгоритм ба програмчлал" Лекц №1
u.cs101 "Алгоритм ба програмчлал" Лекц №1u.cs101 "Алгоритм ба програмчлал" Лекц №1
u.cs101 "Алгоритм ба програмчлал" Лекц №1
 
U.cs101 алгоритм программчлал-1(1)
U.cs101   алгоритм программчлал-1(1)U.cs101   алгоритм программчлал-1(1)
U.cs101 алгоритм программчлал-1(1)
 
Small basic үзүүлэн
Small basic үзүүлэнSmall basic үзүүлэн
Small basic үзүүлэн
 
Ogogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lektsOgogdliin sangiin zohion baiguulalt lekts
Ogogdliin sangiin zohion baiguulalt lekts
 
Database 3
Database 3Database 3
Database 3
 
Ci prog tolgoi file хичээл 2
Ci prog tolgoi file хичээл 2Ci prog tolgoi file хичээл 2
Ci prog tolgoi file хичээл 2
 
Sw203 Lecture5 Class Acess Modifiers
Sw203 Lecture5 Class Acess ModifiersSw203 Lecture5 Class Acess Modifiers
Sw203 Lecture5 Class Acess Modifiers
 
u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7u.cs101 "Алгоритм ба програмчлал" Лекц №7
u.cs101 "Алгоритм ба програмчлал" Лекц №7
 
U.cs101 lecture 6
U.cs101   lecture 6U.cs101   lecture 6
U.cs101 lecture 6
 
User requirements
User requirementsUser requirements
User requirements
 
u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4
 
программ хангамжийн їндсэн ойлголт
программ хангамжийн їндсэн ойлголтпрограмм хангамжийн їндсэн ойлголт
программ хангамжийн їндсэн ойлголт
 
Лекц 10: (Рекурс)
Лекц 10: (Рекурс)Лекц 10: (Рекурс)
Лекц 10: (Рекурс)
 

En vedette

Java лекц8
Java лекц8Java лекц8
Java лекц8
Enkhee99
 
Lecture11 12
Lecture11 12Lecture11 12
Lecture11 12
ganzorigb
 
Lecture4
Lecture4Lecture4
Lecture4
orgil
 
Математик програмчлал - MT212. Бие даалт 2, 3
Математик програмчлал - MT212. Бие даалт 2, 3Математик програмчлал - MT212. Бие даалт 2, 3
Математик програмчлал - MT212. Бие даалт 2, 3
math-programchlal
 

En vedette (20)

Java lecture4
Java lecture4Java lecture4
Java lecture4
 
Java lecture3
Java lecture3Java lecture3
Java lecture3
 
Жава хэлний сурах бичиг Java helnii surah bichig Mongol
Жава хэлний сурах бичиг Java helnii surah bichig MongolЖава хэлний сурах бичиг Java helnii surah bichig Mongol
Жава хэлний сурах бичиг Java helnii surah bichig Mongol
 
Java лекц8
Java лекц8Java лекц8
Java лекц8
 
Java xelnii surax_bichig
Java xelnii surax_bichigJava xelnii surax_bichig
Java xelnii surax_bichig
 
Лекц 6 - 7
Лекц 6 - 7Лекц 6 - 7
Лекц 6 - 7
 
Lecture11 12
Lecture11 12Lecture11 12
Lecture11 12
 
CS202 Lab2
CS202 Lab2CS202 Lab2
CS202 Lab2
 
Java lecture4
Java lecture4Java lecture4
Java lecture4
 
Lecture4
Lecture4Lecture4
Lecture4
 
1329783030
13297830301329783030
1329783030
 
Семинар-3
Семинар-3Семинар-3
Семинар-3
 
Ci prog tolgoi file хичээл 2
Ci prog tolgoi file хичээл 2Ci prog tolgoi file хичээл 2
Ci prog tolgoi file хичээл 2
 
Лекц-1
Лекц-1Лекц-1
Лекц-1
 
Hotel Management In C++
Hotel Management In C++Hotel Management In C++
Hotel Management In C++
 
Математик програмчлал - MT212. Бие даалт 2, 3
Математик програмчлал - MT212. Бие даалт 2, 3Математик програмчлал - MT212. Бие даалт 2, 3
Математик програмчлал - MT212. Бие даалт 2, 3
 
лекц №6
лекц №6лекц №6
лекц №6
 
Sw203 Lecture10 Polymorphism
Sw203 Lecture10 PolymorphismSw203 Lecture10 Polymorphism
Sw203 Lecture10 Polymorphism
 
u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5u.cs101 "Алгоритм ба програмчлал" Лекц №5
u.cs101 "Алгоритм ба програмчлал" Лекц №5
 
u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6u.cs101 "Алгоритм ба програмчлал" Лекц №6
u.cs101 "Алгоритм ба програмчлал" Лекц №6
 

Similaire à Java lecture5 (13)

Pl lecture8
Pl lecture8Pl lecture8
Pl lecture8
 
Pl lecture8
Pl lecture8Pl lecture8
Pl lecture8
 
Pl lecture7
Pl lecture7Pl lecture7
Pl lecture7
 
Lecture3 4
Lecture3 4Lecture3 4
Lecture3 4
 
SW203 Lab9
SW203  Lab9SW203  Lab9
SW203 Lab9
 
Pl lecture6
Pl lecture6Pl lecture6
Pl lecture6
 
Cs203 lecture 14 reflection
Cs203 lecture 14  reflectionCs203 lecture 14  reflection
Cs203 lecture 14 reflection
 
Java laboratoriin udirdamj 2
 Java laboratoriin udirdamj 2 Java laboratoriin udirdamj 2
Java laboratoriin udirdamj 2
 
Ood lesson12.1 ---------
Ood lesson12.1  ---------Ood lesson12.1  ---------
Ood lesson12.1 ---------
 
Sw203 Lecture8 Interface
Sw203 Lecture8 InterfaceSw203 Lecture8 Interface
Sw203 Lecture8 Interface
 
S W203 Lecture8 Interface
S W203  Lecture8  InterfaceS W203  Lecture8  Interface
S W203 Lecture8 Interface
 
Sw203 Lecture4 Class Object
Sw203 Lecture4  Class ObjectSw203 Lecture4  Class Object
Sw203 Lecture4 Class Object
 
Sw203lab6
Sw203lab6Sw203lab6
Sw203lab6
 

Plus de Onobold Odgerel

Plus de Onobold Odgerel (20)

Бие даалт 1
Бие даалт 1Бие даалт 1
Бие даалт 1
 
Ezo сэдэвчилэсэн төлөвлөгөө
Ezo сэдэвчилэсэн төлөвлөгөөEzo сэдэвчилэсэн төлөвлөгөө
Ezo сэдэвчилэсэн төлөвлөгөө
 
Ezo сэдэвчилэсэн төлөвлөгөө
Ezo сэдэвчилэсэн төлөвлөгөөEzo сэдэвчилэсэн төлөвлөгөө
Ezo сэдэвчилэсэн төлөвлөгөө
 
төслийн зорилго
төслийн зорилготөслийн зорилго
төслийн зорилго
 
төслийн зорилго
төслийн зорилготөслийн зорилго
төслийн зорилго
 
макро эдийн засгийн бие даалтын бодлого
макро эдийн засгийн бие даалтын бодлогомакро эдийн засгийн бие даалтын бодлого
макро эдийн засгийн бие даалтын бодлого
 
семинар №10
семинар №10семинар №10
семинар №10
 
семинар №9
семинар №9семинар №9
семинар №9
 
International economics hutulbur
International economics hutulburInternational economics hutulbur
International economics hutulbur
 
International economics hutulbur
International economics hutulburInternational economics hutulbur
International economics hutulbur
 
Mac standard
Mac standardMac standard
Mac standard
 
лекц №5
лекц №5лекц №5
лекц №5
 
лекц №4
лекц №4лекц №4
лекц №4
 
лекц №3
лекц №3лекц №3
лекц №3
 
лекц №3
лекц №3лекц №3
лекц №3
 
лекц №2
лекц №2лекц №2
лекц №2
 
лекц №1
лекц №1лекц №1
лекц №1
 
1
11
1
 
лекц №1
лекц №1лекц №1
лекц №1
 
1
11
1
 

Java lecture5

  • 1. Java Programming Logo Java дээр класс ашиглах багш Á.Ãàíçîðèã Улаанбаатар дээд сургууль 2011 он
  • 2. Logo Агуулга 1 Классын удамшил 2 Байгуулагч функц, түүний хэрэглээ 3 Классын гишүүдийн хандалт 4 This заагч 5 Функц дахин тодорхойлох 6 Get, set функцүүд 7 Устгагч функц Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 3. Logo Классын удамшил (inheritance) Java-н класс бүр ямар нэгэн классыг удамшуулсан байдаг. Удамшуулахдаа extends түлхүүр үгийг ашиглана:  public class Car extends Vehicle{… Хэрвээ extends үгийг ашиглаагүй байвал java.lang.Object классаас удамшдаг. Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 4. Logo Классын байгуулагч функц (constructor) Классын обьектийг үүсгэн анхны утгыг нь олгоход хэрэглэгдэнэ. Обьектийг үүсгэх үед дуудагддаг. Класс дотор зарлагдана. Нэр нь классын нэртэй адилхан байна. Аргумент авч болох боловч утга буцаадаггүй. Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 5. Logo Классын байгуулагч функц (constructor) Нэг класст олон байгуулагч функц байж болно. (Дахин тодорхойлолт= overloading)  new ClassName( argument1, argument2, …, arugmentN );  new нь шинэ обьект үүсгэж байгааг илтгэнэ.  ClassName нь ямар төрлийн обьект үүсгэж байгааг заана.  Аргументууд нь классын энэ байгуулагч функцэд дамжуулагдана. • TestClass myObject = new TestClass(); • TestClass myObject = new TestClass(1, 5, “test”); Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 6. Logo Классын хувьсагчид Классын хувьсагчид нь уг классын бүх функцүүдэд ашиглагдаж болно. Классын хувьсагчдийг классын эхэнд функцүүдийн өмнө зарладаг. Классын хувьсагчид нь хандалтын тодорхойлогчтой байдаг: • Public • Private • protected Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 7. Logo Классын хувьсагчид Public хувьсагч: ийм хувьсагчид програмд оролцож байгаа бүх классын функцүүд хандаж чадна. • public String name; Private хувьсагч: ийм хувьсагчид зөвхөн уг классын л функцүүд хандаж чадна. • private int age; Protected хувьсагч: ийм хувьсагчид уг классын функцүүд болон түүнээс удамшсан классын функцүүд хандаж чадна. • protected int x; Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 8. Logo Классын функцүүд Классын функцүүд нь public, private, protected гэсэн тодорхойлогчтой байдаг. Хандах байдал нь адил. Хувьсагч болон функцүүдэд ингэж хандах эрхийг тавьж өгснөөр програм өндөр зохион байгуулалттай болдог. • Protected void add() (Тайлбар: хэн дуртай нь хаанаас ч хамаагүй хандаад байвал програм алдаатай болох боломж ихэсдэг) Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 9. Logo Жишээ Time1 ба TimeTest классуудыг хийнэ. Public классууд нь тусдаа файлд байх ѐстой. Time1 класс нь өөрөө бие даан ажиллахгүй. • Main функцгүй • TimeTest класс нь (main функцтэй) Time1 классын обьектийг үүсгэн ашиглана. Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 10. Logo Жишээ Time1 класс нь Object import java.text.DecimalFormat; классаас удамшиж байна. public class Time1 extends Object { private int hour; // 0 - 23 Private хувьсагчиддад зөвхөн уг private int minute; // 0 - 59 классын функцүүд л хандаж өөрчлөх, утгыг нь харах эрхтэй private int second; // 0 - 59 байдаг public Time1() { Time1 байгуулагч нь Time1 setTime( 0, 0, 0 ); классын обьектийг үүсгээд } setTime функцийг дуудна. public void setTime( int h, int m, int s ) { setTime функц нь классын hour = ( ( h >= 0 && h < 24 ) ? h : 0 ); private хувьсагчдад minute = ( ( m >= 0 && m < 60 ) ? m : 0 ); аргументаар орж ирсэн second = ( ( s >= 0 && s < 60 ) ? s : 0 ); утгуудыг олгоно. } Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 11. Logo Жишээ Эдгээр функцүүд нь public String toUniversalString() цаг, минут, секундийг янз янзын { форматаар үзүүлнэ. DecimalFormat twoDigits = new DecimalFormat( "00" ); return twoDigits.format( hour ) + ":" + twoDigits.format( minute ) + ":" + twoDigits.format( second ); } public String toStandardString() { DecimalFormat twoDigits = new DecimalFormat( "00" ); return ( (hour == 12 || hour == 0) ? 12 : hour % 12 ) + ":" + twoDigits.format( minute ) + ":" + twoDigits.format( second ) + ( hour < 12 ? " AM" : " PM" ); } } Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 12. Logo Жишээ Time1 классын time обьектийг import javax.swing.JOptionPane; үүсгэж байна. =new Time1 мөр public class TimeTest1 { нь Time1 классын public static void main( String args[] ) байгуулагчийг дуудаж байна. { Time1 time = new Time1(); // calls Time1 constructor String output = "The initial universal time is: " + time.toUniversalString() + "nThe initial standard time is: " + time.toStandardString(); TimeTest1 классаас Time1 time.setTime( 13, 27, 6 ); классын public функцүүдийг output += "nnUniversal time after setTime is: " + ашиглаж байна. time.toUniversalString() + "nStandard time after setTime is: " + time.toStandardString(); time.setTime( 99, 99, 99 ); output += "nnAfter attempting invalid settings: " + "nUniversal time: " + time.toUniversalString() + "nStandard time: " + time.toStandardString(); Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 13. Logo Жишээ JOptionPane.showMessageDialog( null, output, "Testing Class Time1", JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); } // end main } // end class TimeTest1 Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 14. Logo Жишээ public class TimeTest2 { public static void main( String args[] ) { Time1 time = new Time1(); time.hour = 7; // error: hour is a private instance variable time.minute = 15; // error: minute is a private instance variable time.second = 30; // error: second is a private instance variable } } // end class TimeTest2 Классын private хувьсагчдад шууд хандах боломжгүй. Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 15. Logo This  This нь тухайн обьектийг өөрийг нь хэлдэг.  Хэрвээ класст өөрт нь байгаа хувьсагч нь өөр классаас удамшиж авсан хувьсагчтай ижил нэртэй байгаа бол this ашиглан миний хувьсагч гэж ялгаж өгөх байдлаар хэрэглэнэ.  Мөн функцийн аргумент ба классын хувьсагчийг ялгахад хэрэглэж болно. public class Test{ String id; int counter; public void init() { id = “object”; this.id = “object” this.counter = 0; counter = 0; } } Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 16. Logo Жишээ import javax.swing.*; import java.text.DecimalFormat; public class ThisTest { public static void main( String args[] ) { SimpleTime time = new SimpleTime( 12, 30, 19 ); JOptionPane.showMessageDialog( null, time.buildString(), "Demonstrating the "this" Reference", JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); } } // end class ThisTest class SimpleTime { SimpleTime класст private int hour; hour, minute, second хувьсагчдыг зарлаж байна. private int minute; private int second; Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 17. Logo Жишээ public SimpleTime( int hour, int minute, int second ) { this.hour = hour; // set "this" object's hour this.minute = minute; // set "this" object's minute this.second = second; // set "this" object's second } public String buildString() { return "this.toStandardString(): " + this.toStandardString() + toStandartString функцийг хоѐр янзаар дуудаж байна. "ntoStandardString(): " + toStandardString(); Хоѐулаа адилхан юм. } public String toStandardString() { DecimalFormat twoDigits = new DecimalFormat( "00" ); return twoDigits.format( this.hour ) + ":" + twoDigits.format( this.minute ) + ":" + twoDigits.format( this.second ); } } // end class SimpleTime Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 18. Logo Функц дахин тодорхойлох Класс дотор ижил нэртэй функцүүд байж болдог. Ийм функцүүд нь аргументаараа ялгагддаг. Ийм функцүүдийг дахин тодорхойлогдсон (overloaded) функцүүд гэдэг. Ижил нэртэй ижил аргументтай функцүүд байж болохгүй. Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 19. Logo Жишээ import java.text.DecimalFormat; public class Time2 { private int hour; // 0 - 23 private int minute; // 0 - 59 private int second; // 0 - 59 // Time2 constructor initializes each instance variable to zero; // ensures that Time object starts in a consistent state public Time2() Аргументгүй { байгуулагч функц this( 0, 0, 0 ); // invoke Time2 constructor with three arguments } Нэг int аргументтай дахин // Time2 constructor: hour supplied, minute and second defaulted to 0 тодорхойлогдсон public Time2( int h ) байгуулагч функц { this( h, 0, 0 ); // invoke Time2 constructor with three arguments } // Time2 constructor: hour and minute supplied, second defaulted to 0 Хоѐр int аргументтай public Time2( int h, int m ) дахин тодорхойлогдсон { байгуулагч функц this( h, m, 0 ); // invoke Time2 constructor with three arguments } Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 20. Logo Жишээ // Time2 constructor: hour, minute and second supplied public Time2( int h, int m, int s ) Дахин тодорхойлогдсон { гуравдах байгуулагч setTime( h, m, s ); // invoke setTime to validate time функц. Гурван int } аргументтай байна. // Time2 constructor: another Time2 object supplied Time2 классын обьектийг public Time2( Time2 time ) аргументаараа хүлээж { авдаг дөрөвдэх // invoke Time2 constructor with three arguments байгуулагч. this( time.hour, time.minute, time.second ); } // set a new time value using universal time; perform // validity checks on data; set invalid values to zero Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 21. Logo Жишээ public void setTime( int h, int m, int s ) { hour = ( ( h >= 0 && h < 24 ) ? h : 0 ); minute = ( ( m >= 0 && m < 60 ) ? m : 0 ); second = ( ( s >= 0 && s < 60 ) ? s : 0 ); } // convert to String in universal-time format public String toUniversalString() { DecimalFormat twoDigits = new DecimalFormat( "00" ); return twoDigits.format( hour ) + ":" + twoDigits.format( minute ) + ":" + twoDigits.format( second ); } Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 22. Logo Жишээ // convert to String in standard-time format public String toStandardString() { DecimalFormat twoDigits = new DecimalFormat( "00" ); return ( (hour == 12 || hour == 0) ? 12 : hour % 12 ) + ":" + twoDigits.format( minute ) + ":" + twoDigits.format( second ) + ( hour < 12 ? " AM" : " PM" ); } } // end class Time2 Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 23. Logo Жишээ import javax.swing.*; public class TimeTest3 { public static void main( String args[] ) Өөр өөр байгуулагч { ашиглан Time2 классын Time2 t1 = new Time2(); // 00:00:00 обьектийг үүсгэж байна. Time2 t2 = new Time2( 2 ); // 02:00:00 Time2 t3 = new Time2( 21, 34 ); // 21:34:00 Time2 t4 = new Time2( 12, 25, 42 ); // 12:25:42 Time2 t5 = new Time2( 27, 74, 99 ); // 00:00:00 Time2 t6 = new Time2( t4 ); // 12:25:42 String output = "Constructed with: " + "nt1: all arguments defaulted" + "n " + t1.toUniversalString() + "n " + t1.toStandardString(); output += "nt2: hour specified; minute and second defaulted" + "n " + t2.toUniversalString() + "n " + t2.toStandardString(); output += "nt3: hour and minute specified; second defaulted" + "n " + t3.toUniversalString() + "n " + t3.toStandardString(); Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 24. Logo Жишээ output += "nt4: hour, minute and second specified" + "n " + t4.toUniversalString() + "n " + t4.toStandardString(); output += "nt5: all invalid values specified" + "n " + t5.toUniversalString() + "n " + t5.toStandardString(); output += "nt6: Time2 object t4 specified" + "n " + t6.toUniversalString() + "n " + t6.toStandardString(); JOptionPane.showMessageDialog( null, output, "Overloaded Constructors", JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); } // end main } // end class TimeTest3 Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 25. Logo Үр дүн Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 26. Logo Get, set функцүүд Хандалтын функцүүд (“get” функц)  Public функцүүд байдаг.  Private хувьсагчийн утгыг авах боломжийг олгодог. Өөрчлөгч функцүүд (“set” функц)  Public функцүүд байдаг.  Private хувьсагчийн утгыг өөрчлөх боломжийг олгодог. Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 27. Logo Жишээ import java.text.DecimalFormat; Эдгээр private public class Time3 { хувьсагчдад бусад private int hour; // 0 - 23 классын обьектуудаас private int minute; // 0 - 59 шууд хандах боломжгүй. private int second; // 0 - 59 // Time3 constructor initializes each instance variable to zero; // ensures that Time object starts in a consistent state public Time3() { this( 0, 0, 0 ); // invoke Time3 constructor with three arguments } // Time3 constructor: hour supplied, minute and second defaulted to 0 public Time3( int h ) { this( h, 0, 0 ); // invoke Time3 constructor with three arguments } // Time3 constructor: hour and minute supplied, second defaulted to 0 public Time3( int h, int m ) { this( h, m, 0 ); // invoke Time3 constructor with three arguments } Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 28. Logo Жишээ // Time3 constructor: hour, minute and second supplied public Time3( int h, int m, int s ) { setTime( h, m, s ); } // Time3 constructor: another Time3 object supplied public Time3( Time3 time ) { // invoke Time3 constructor with three arguments this( time.getHour(), time.getMinute(), time.getSecond() ); } // Set Methods // set a new time value using universal time; perform // validity checks on data; set invalid values to zero public void setTime( int h, int m, int s ) { setHour( h ); // set the hour Set функцүүдийн ачаар setMinute( m ); // set the minute private өгөгдлийг өөрчлөх setSecond( s ); // set the second боломжтой болно. } // validate and set hour public void setHour( int h ) { hour = ( ( h >= 0 && h < 24 ) ? h : 0 ); } Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 29. Logo Жишээ // validate and set minute public void setMinute( int m ) { minute = ( ( m >= 0 && m < 60 ) ? m : 0 ); } // validate and set second public void setSecond( int s ) { second = ( ( s >= 0 && s < 60 ) ? s : 0 ); } // Get Methods // get hour value public int getHour() { Get функцүүдийг ашиглан private return hour; хувьсагчийн утгыг харах } // get minute value боломжтой болно. public int getMinute() { return minute; } Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 30. Logo Жишээ // get second value public int getSecond() { return second; } // convert to String in universal-time format public String toUniversalString() { DecimalFormat twoDigits = new DecimalFormat( "00" ); return twoDigits.format( getHour() ) + ":" + twoDigits.format( getMinute() ) + ":" + twoDigits.format( getSecond() ); } Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 31. Logo Жишээ // convert to String in standard-time format public String toStandardString() { DecimalFormat twoDigits = new DecimalFormat( "00" ); return ( ( getHour() == 12 || getHour() == 0 ) ? 12 : getHour() % 12 ) + ":" + twoDigits.format( getMinute() ) + ":" + twoDigits.format( getSecond() ) + ( getHour() < 12 ? " AM" : " PM" ); } } // end class Time3 Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 32. Logo Жишээ import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TimeTest4 extends JApplet implements ActionListener { private Time3 time; private JLabel hourLabel, minuteLabel, secondLabel; private JTextIField hourField, minuteField, secondField, displayField; private JButton tickButton; // create Time3 object and set up GUI Time3 обьектийг public void init() зарлаж үүсгэж байна. { time = new Time3(); // create Time3 object // get applet's content pane and change its layout to FlowLayout Container container = getContentPane(); container.setLayout( new FlowLayout() ); // set up hourLabel and hourField JTextFields нь хэрэглэгчид hourLabel = new JLabel( "Set Hour" ); цагийг өөрчлөх боломж hourField = new JTextField( 10 ); олгоно. container.add( hourLabel ); container.add( hourField ); Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 33. Logo Жишээ // set up minuteLabel and minuteField minuteLabel = new JLabel( "Set Minute" ); Минутын утгыг minuteField = new JTextField( 10 ); өөрчлөхдөө JTextFields container.add( minuteLabel ); ашиглая. container.add( minuteField ); // set up secondLabel and secondField secondLabel = new JLabel( "Set Second" ); secondField = new JTextField( 10 ); Секундын утгыг container.add( secondLabel ); өөрчлөхдөө JTextFields container.add( secondField ); ашиглая. // set up displayField displayField = new JTextField( 30 ); displayField.setEditable( false ); container.add( displayField ); Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 34. Logo Жишээ // set up tickButton tickButton = new JButton( "Add 1 to Second" ); container.add( tickButton ); // register event handlers; this applet is the ActionListener, // which contains method actionPerformed that will be called to // handle action events generated by hourField, minuteField, // secondField and tickButton hourField.addActionListener( this ); minuteField.addActionListener( this ); secondField.addActionListener( this ); tickButton.addActionListener( this ); Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 35. Logo Жишээ displayTime(); // update text in displayField and status bar } // end method init // event handler for button and textfield events public void actionPerformed( ActionEvent event ) { // process tickButton event if ( event.getSource() == tickButton ) tick(); // process hourField event else if ( event.getSource() == hourField ) { time.setHour( Integer.parseInt( event.getActionCommand() ) ); hourField.setText( "" ); } Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 36. Logo Жишээ // process minuteField event else if ( event.getSource() == minuteField ) { time.setMinute( Integer.parseInt( event.getActionCommand() ) ); minuteField.setText( "" ); } // process secondField event else if ( event.getSource() == secondField ) { time.setSecond( Integer.parseInt( event.getActionCommand() ) ); secondField.setText( "" ); } TimeTest5 нь Time3-ийн private хувьсагчдийг өөрчлөхдөө Time3-н set функцүүдийг ашиглаж байна. Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 37. Logo Жишээ // process minuteField event else if ( event.getSource() == minuteField ) { time.setMinute( Integer.parseInt( event.getActionCommand() ) ); minuteField.setText( "" ); TimeTest5 нь Time3-ийн private } хувьсагчдийг өөрчлөхдөө Time3-н set функцүүдийг ашиглаж байна. // process secondField event else if ( event.getSource() == secondField ) { time.setSecond( Integer.parseInt( event.getActionCommand() ) ); secondField.setText( "" ); } Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 38. Logo Жишээ displayTime(); // update text in displayField and status bar } // end method actionPerformed // update displayField and applet container's status bar public void displayTime() { displayField.setText( "Hour: " + time.getHour() + "; Minute: " + time.getMinute() + "; Second: " + time.getSecond() ); showStatus( "Standard time is: " + time.toStandardString() + "; Universal time is: " + time.toUniversalString() ); } // end method updateDisplay Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 39. Logo Жишээ // add one to second and update hour/minute if necessary public void tick() { time.setSecond( ( time.getSecond() + 1 ) % 60 ); if ( time.getSecond() == 0 ) { TimeTest5 нь Time3-ийн time.setMinute( ( time.getMinute() + 1 ) % 60 ); private хувьсагчдийг авахдаа Time3-н get функцүүдийг ашиглаж if ( time.getMinute() == 0 ) байна. time.setHour( ( time.getHour() + 1 ) % 24 ); } } // end method tick } // end class TimeTest4 Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 40. Logo Үр дүн Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 41. Logo Үр дүн Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 42. Logo Үр дүн Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 43. Logo Агуулалт Composition Нэг класс өөр классын обьектийг зарлалтандаа ашиглаж болно.  Энэхүү обьект нь уг классын хувьсагчтай адилхан болдог. Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 44. Logo Жишээ public class Date { private int month; // 1-12 private int day; // 1-31 based on month private int year; // any year public Date( int theMonth, int theDay, int theYear ) { month = checkMonth( theMonth ); // validate month year = theYear; // could validate year day = checkDay( theDay ); // validate day System.out.println( "Date object constructor for date " + toDateString() ); } // end Date constructor // utility method to confirm proper month value private int checkMonth( int testMonth ) { if ( testMonth > 0 && testMonth <= 12 ) // validate month return testMonth; Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 45. Logo Жишээ else { // month is invalid System.out.println( "Invalid month (" + testMonth + ") set to 1." ); return 1; // maintain object in consistent state } } // end method checkMonth // utility method to confirm proper day value based on month and year private int checkDay( int testDay ) { int daysPerMonth[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; // check if day in range for month if ( testDay > 0 && testDay <= daysPerMonth[ month ] ) return testDay; Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 46. Logo Жишээ // check for leap year if ( month == 2 && testDay == 29 && ( year % 400 == 0 || ( year % 4 == 0 && year % 100 != 0 ) ) ) return testDay; System.out.println( "Invalid day (" + testDay + ") set to 1." ); return 1; // maintain object in consistent state } // end method checkDay // return a String of the form month/day/year public String toDateString() { return month + "/" + day + "/" + year; } } // end class Date Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 47. Logo Жишээ public class Employee { private String firstName; private String lastName; private Date birthDate; private Date hireDate; public Employee( String first, String last, Date dateOfBirth, Date dateOfHire ) { firstName = first; lastName = last; birthDate = dateOfBirth; hireDate = dateOfHire; } public String toEmployeeString() { return lastName + ", " + firstName + " Hired: " + hireDate.toDateString() + " Birthday: " + birthDate.toDateString(); } } // end class Employee Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 48. Logo Жишээ import javax.swing.JOptionPane; public class EmployeeTest { public static void main( String args[] ) { Date birth = new Date( 7, 24, 1949 ); Date hire = new Date( 3, 12, 1988 ); Employee employee = new Employee( "Bob", "Jones", birth, hire ); JOptionPane.showMessageDialog( null, employee.toEmployeeString(), "Testing Class Employee", JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); } } // end class EmployeeTest Date object constructor for date 7/24/1949 Date object constructor for date 3/12/1988 Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 49. Logo Устгагч функц Finalizer Java нь үйл ажиллагаагаа дуусгасан обьектуудыг автоматаар олж санах ойгоос чөлөөлдөг. • Garbage collection (хог цуглуулалт) Обьект санах ойгоос чөлөөлөгдөхөд түүний Finalize функц нь дуудагддаг. • Санах ойг системд буцааж өгнө. • java.lang.Object класс дотор байх finalize функцийг ашигладаг. • Аргументгүй • void функц Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 50. Logo Статик хувьсагч Static түлхүүр үгийг ашиглана.  Классын бүх обьектуудад ижил хэрэглэгддэг өгөгдлийг статик болгож ашигладаг.  Классын бүх обьектууд уг өгөгдлийн хуваан эзэмшинэ.  Хандахдаа КлассНэр.хувьсагчНэр • Math.pi Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 51. Logo Жишээ public class Employee { Employee классын обьектууд дундаа нэг private String firstName; count гэсэн хувьсагчтай. private String lastName; private static int count = 0; // number of objects in memory // initialize employee, add 1 to static count and // output String indicating that constructor was called public Employee( String first, String last ) { firstName = first; lastName = last; Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 52. Logo Жишээ ++count; // increment static count of employees System.out.println( "Employee constructor: " + firstName + " " + lastName ); } // subtract 1 from static count when garbage collector // calls finalize to clean up object and output String // indicating that finalize was called protected void finalize() { --count; // decrement static count of employees System.out.println( "Employee finalizer: " + firstName + " " + lastName + "; count = " + count ); } Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 53. Logo Жишээ // get first name public String getFirstName() { return firstName; } // get last name public String getLastName() { return lastName; } Статик хувьсагчид // static method to get static count value статик функц ашиглан public static int getCount() хандаж байна. { return count; } } // end class Employee Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 54. Logo Жишээ import javax.swing.*; public class EmployeeTest { public static void main( String args[] ) { // prove that count is 0 before creating Employees EmployeeTest нь String output = "Employees before instantiation: " + Employee-н статик Employee.getCount(); функцийг обьект нь // create two Employees; count should be 2 үүсээгүй байхад ч Employee e1 = new Employee( "Susan", "Baker" ); дуудаж чадна. Employee e2 = new Employee( "Bob", "Jones" ); // prove that count is 2 after creating two Employees output += "nnEmployees after instantiation: " + "nvia e1.getCount(): " + e1.getCount() + "nvia e2.getCount(): " + e2.getCount() +"nvia Employee.getCount(): " + Employee.getCount(); // get names of Employees output += "nnEmployee 1: " + e1.getFirstName() + " " + e1.getLastName() + "nEmployee 2: " + e2.getFirstName() + " " + e2.getLastName(); Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 55. Logo Жишээ // decrement reference count for each Employee object; in this // example, there is only one reference to each Employee, so these // statements mark each Employee object for garbage collection e1 = null; Java-н автомат e2 = null; garbage collection механизмийг дуудаж System.gc(); // suggest call to garbage collector байна. // show Employee count after calling garbage collector; count // displayed may be 0, 1 or 2 based on whether garbage collector // executes immediately and number of Employee objects collected output += "nnEmployees after System.gc(): " + Employee.getCount(); JOptionPane.showMessageDialog( null, output, "Static Members", JOptionPane.INFORMATION_MESSAGE ); System.exit( 0 ); } Employee constructor: Susan Baker Employee constructor: Bob Jones } // end class EmployeeTest Employee finalizer: Susan Baker; count = 1 Employee finalizer: Bob Jones; count = 0 Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 56. Logo Үр дүн Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 57. Logo Даалгавар 1. Лекц дээрх бүх жишээг ажиллуулан тайлбарыг нь монголоор (англи үсгээр галиглаж болно) хий. 2. Доорх жишээг хийнэ:  Классууд: • Хүн класс – Нэр – Нас – Хүйс – Тоо (статик) • Оюутан класс – Мэргэжил – Анги – ДундажДүн Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 58. Logo Даалгавар  Оюутан класс нь Хүн классаас удамшина.  Хэрэглэгчээс оюутны тоо, болон оюутан бүрийн мэдээллийг аваад оюутан обьектуудыг үүсгэнэ (байгуулагч функц, set функц) Оюутнуудыг массивт хийнэ.  Бүх оюутны мэдээллийг хэвлэж үзүүл. (get функц)  Бүх оюутнуудын дундаж дүнг тооцоолж хэвлэ.  Нийт хэдэн оюутан байгааг үзүүл (статик хувьсагч)  Оюутнуудыг дундаж дүнгээр нь эрэмбэлж гарга. Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 59. Logo Шинэ үгс  Inheritance: Удамшил  public: Дурын классын функцээс хандаж болох хувьсагч болон функц.  private: Зөвхөн уг классын функцүүд л хандаж болох хувьсагч болон функц.  protected: Уг классын болон түүнээс удамшсан бусад классын функцүүдээс хандаж болох хувьсагч болон функц.  Garbage collection: Java нь ашиглагдахгүй болсон обьектуудыг санах ойгоос олж түүний finalize функцийг дуудан уг обьектийг санах ойгоос чөлөөлдөг. Энэ процессийг хог цуглуулалт буюу garbage collection гэдэг. Жава програмчлал Улаанбаатар Дээд Сургууль 2011 он
  • 60. Java Programming Logo Улаанбаатар дээд сургууль 2011 он