• Save
Java lecture5
Upcoming SlideShare
Loading in...5
×
 

Java lecture5

on

  • 1,676 views

 

Statistics

Views

Total Views
1,676
Views on SlideShare
1,654
Embed Views
22

Actions

Likes
1
Downloads
0
Comments
0

3 Embeds 22

http://enkhtsetseg-ubu.blogspot.com 20
http://enkhtsetseg-ubu.blogspot.com&_=1328663132906 HTTP 1
http://enkhtsetseg-ubu.blogspot.com&_=1328663215000 HTTP 1

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Java lecture5 Java lecture5 Presentation Transcript

    • JavaProgrammingLogo 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" objects hour this.minute = minute; // set "this" objects minute this.second = second; // set "this" objects 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 applets 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 containers 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 EmployeeTestDate object constructor for date 7/24/1949Date 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 он
    • JavaProgrammingLogo Улаанбаатар дээд сургууль 2011 он