Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УМКД JP Инф_каз_2015.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
595.94 Кб
Скачать

IndexOf және lastIndexOf әдістерінің қолданылу

class indexOfDemo {

public static void main(String args[]) {

String s = "Now is the time for all good men " +

"to come to the aid of their country " +

"and pay their due taxes.";

System.out.println(s);

System.out.println("indexOf(t) = " + s.indexOf('t’));

System.out.println("lastlndexOf(t)= " +s.lastlndexOf('t’));

System.out.println("indexOf(the) = " + s.indexOf("the"));

System.out.println("lastlndexOf(the) = " + s.lastlndexOf("the"));

System.out.println("indexOf(t, 10) = " + s.indexOf('t’ , 10));

System.out.println("lastlndexOf(t, 50) = " + s.lastlndexOf('t’ , 50));

System.out.println("indexOf(the, 10) = " + s.indexOf("the", 10));

System.out.println("lastlndexOf(the, 50) = " + s.lastlndexOf("the", 50));

}

}

Программа нәтижесі

Now is the time for all good men to come to the aid of their country

and pay their due taxes.

indexOf(t) = 7

lastlndexOf(t) = 87

indexOf(the) = 7

lastlndexOf(the) = 77

indexОf(t, 10) = 11

lastlndexОf(t, 50) = 44

indexОf(the, 10) = 44

lastlndexОf(the, 50) = 44

Әдебиеттер

  1. Васильев А.Н. Java. Объектно-ориентированное программирование: Учеб. пособ. – СПб.: Питер, 2011. – 400 с. [В]

  2. Казарин С.А., Клишин А.П. Среда разработки Java-приложений Eclipse: (ПО для объектно-ориентирован-ного программирования и разработки приложений на языке Java): Учеб. пособ., Москва, 2008. – 77 с. [К]

  3. Монахов В.В. Язык программирования Java и среда NetBeans. – 3-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2011. – 704 с.

11 дәріс. Көп ағымды программалау

Дәріс мақсаты: Javaның ағымды моделі, Ағымды құру, Бірнеше ағымды құру, Ағымның синхронизациясын түсіндіру.

Қазіргі көпшілік үлестірілілетін қосымшалар (Rich Client) пен веб- қосымшалар (Thin Client) үшін бірнеше қолданушыларды бір уақытта қамтамасыз ету талаптары қойылады. Қолданушылардың әрқайсысына бөлек ағын бөлінеді, сонымен қатар ақпараттық ресурстар үлестіріліп, параллель өңделеді.

Әрбір тәуелсіз бірнеше есептерді бір уақытта ұйымдастыруға көмектесетін амалды (құралды) ағын деп атайды. Программаның орындалуын қамтамасыз ететін негізгі ағыннан тәуелсіз автономды орындалатын ағындар класс экземплярлары болып табылады. Ағынды құрудың және орындаудың екі тәсілі бар: Thread класын кеңейту немесе Runnable интерфейсін жүзеге асыру арқылы.

package by.bsu.threads;

public class TalkThread extends Thread {

@Override

public void run() {

for (int i = 0; i < 10; i++) {

System.out.println("Talking");

try {

Thread.sleep(7);

} catch (InterruptedException e) {

System.err.print(e);

}

}

}

}

Runnable интерфейісін жүзеге асыру барысында бір ғана абстракты run() әдісін анықтау қажет.

package by.bsu.threads;

public class WalkRunnable implements Runnable {

@Override

public void run() {

for (int i = 0; i < 10; i++) {

System.out.println("Walking");

try {

Thread.sleep(7);

} catch (InterruptedException e) {

System.err.println(e);

}

}

}

}

package by.bsu.threads;

public class WalkTalk {

public static void main(String[ ] args) {

TalkThread talk = new TalkThread();

Thread walk = new Thread(new WalkRunnable());

talk.start();

walk.start();

}

}

TalkThread класының ағыны тікелей орындауға жіберіледі. Ал WalkRunnable класының ағыны Thread экземплярын инициализациялау арқылы жүктеледі. Бұл екі ағынның жұмыс істеу нәтижесінде консольға Talking Walking жолдары шығарылады. Программаның әрбір жүктелу барысында бұл жолдардың жазылу реттері әртүрлі.

Runnable интерфейісінің start() әдісі жоқ, тек жалғыз ғана run() әдісі бар. Сондықтан мұндай WalkRunnable ағынын орындау үшін Thread класының экземплярын құрып, оның конструторына WalkRunnable экземплярын параметр ретінде беру керек. Бірақ run() әдісін шақыру барысында ағын құрылмайды, тек әдістің денесі ғана орындалады.

Әдебиеттер

  1. Васильев А.Н. Java. Объектно-ориентированное программирование: Учеб. пособ. – СПб.: Питер, 2011. – 400 с. [В]

  2. Казарин С.А., Клишин А.П. Среда разработки Java-приложений Eclipse: (ПО для объектно-ориентирован-ного программирования и разработки приложений на языке Java): Учеб. пособ., Москва, 2008. – 77 с. [К]

  3. Монахов В.В. Язык программирования Java и среда NetBeans. – 3-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2011. – 704 с.

12 дәріс. Енгізу-шығару жүйесі

Дәріс мақсаты: Байттық және символдық ағымдар, System.in объектісін қолданып консольдық енгізу, Scanner классының көмегімен консольдық енгізу.

Scanner класы арқылы консолді енгізу. JDK 5 версиясынан бастап Java Scanner класы арқылы консолды енгізу-шығару мүмкіндігі жүзеге асырылды. Бұл класпен жұмыс істеу үшін программа файлының тақырыбына import java.util.* инструкциясын қосу керек, яғни java.util пакетін (импортттау) қосу керек.

System.in стандартты ағын негізінде енгізуде Scanner класс объектісі консолді енгізу орындалады. Scanner класс әдісі мыналарды іске асырады:

  • nextLine() — тексттік жолды оқу;

  • next() — бір сөзді оқу;

  • nextInt() — бүтін санды оқу;

  • nextDouble() — нақты санды оқу.

Әдебиеттер

  1. Васильев А.Н. Java. Объектно-ориентированное программирование: Учеб. пособ. – СПб.: Питер, 2011. – 400 с. [В]

  2. Казарин С.А., Клишин А.П. Среда разработки Java-приложений Eclipse: (ПО для объектно-ориентирован-ного программирования и разработки приложений на языке Java): Учеб. пособ., Москва, 2008. – 77 с. [К]

  3. Монахов В.В. Язык программирования Java и среда NetBeans. – 3-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2011. – 704 с

13 дәріс. Енгізу-шығару жүйесі

Дәріс мақсаты: диалогтық терезесін қолдану, файлмен жұмыс, программа мысалдарын түсіну.

Диалогтық терезесін қолдану. Берілгендерді программа орындалғанда консоль арқылы емес, Swing графиктік библиотека компоненті- арнайы диалогты терезе арқылы енгізуге болады. Бұл библиотеканы қосу үшін программа файлының тақырыбына import javax.swing.* инструкциясын қосылу қажет. Диалогты терезе JOptionPane түріндегі командамен шақырылады. Диалогты терезенің енгізілу өрісі үстінде бейнеленген showInputDialog(аргумент), мұндағы JOptionPane класының showInputDialog() статикалық әдісінің аргументіне текст көрсетіледі. Нәтиже ретінде қолданушының диалогты терезедегі өріске енгізілген текст showInputDialog() әдісімен қайтарылады.

Диалогты терезені шақыруда жаңа ағын құрылады да терезені жабуда автоматты түрде аяқталмайды. Программаны барлық ағындарымен аяқтауда System.exit(0) инструкциясын қолдану қажет.

showInputDialog() әдісін шақыру нәтижесі-текст, ол бастапқы берілгендер форматына сәйкес келмейді. Мысалы сан енгізілген болса, онда форматты түрлендіру әдісі қолданылады. Текст түрінде берілген санды сандық форматқа түрлендіру үшін Integer класса-оболочканың parseInt() статикалық әдісі және метод и статический метод Double класса-оболочканың parseDouble() статикалық әдісі шақырылады. Әдістер аргументтері текст түріндегі санды көрсетеді. parseInt() әдісі бүтін сан үшін, ал parseDouble() — нақты сан үшін арналған әдістер.

Для того чтобы можно было воспользоваться и и, import javax.swing.* командасының Swing библиотекасының утилиттерін қолдану үшін программа файлының тақырыбында сәйкес пакетті импорттауды орындау керек.

Файлмен жұмыс. Файлға берілгендерді енгізу және файлдан берілгендерді шығару есебі маңызды есептердің бірі. Ол үшін сәйкес файлға қосылатын енгізу немесе шығару ағындары құрылады. Оған қоса файлдық ағындар кластары FileInputStream (енгізу файлдық ағыны) және FileOutputStream (шығару файлдық ағыны) қолданылады. FileInputStream және FileOutputStream кластарының конструкторлары FileNotFoundException (файл не найден) исключениесін береді. Енгізу немесе шығару ағынымен байланысқан файлдың толық аты конструктор аргументімен тексттік жол түрінде беріледі.

Файлмен жұмыс аяқталған соң ағынды жабу үшін close() әдісі қолданылады.

Программаның орындалуы: 1) енгізу-шығару системасын жүзеге асыруда (соның ішінде файлдар) кластарды қолдану үшін, java.io пакетін import java.io.* командасы арқылы қосамыз.

Программаның басты әдісінде файлдағы әр символды оқу үшін бүтін санды өріс а сипатталады. Ол үшін символды оқып және оның сандық кодын қайтаратын read() әдісі қолданылады. Шығару файлдық ағыны fout командасымен құрылады.

FileOutputStream fout=new FileOutputStream("F:/Java_2/Files/mydata.txt")

Файлдық ағын fout —FileOutputStream класының объектісі. Ағын mydata.txt файлына қосылады, FileOutputStream класының конструктор аргументіне файлдың толық атымен тексттік жол көрсетіледі. Ары қарай fout ағыны mydata.txt файлына берілгендерді шығару үшін қолданылады.

fin файлдық енгізу ағыны мына коандамен құрылады

FileInputStream fin=new FileInputStream("F:/Java_2/Files/base.txt")

fin файлдық ағыны — FileInputStream класының объектісі. Ағын base.txt файлына қосылады (подключается). FileInputStream класының конструктор аргументіне файлдың толық атымен тексттік жол көрсетіледі. fin ағынының көмегімен base.txt файлынан программаға информация енгізіледі.

a=fin.read() командасы арқылы base. txt файлынан символ оқылады. fin файлдық ағыны объектісінен (base.txt файлымен байланысты), файлдан оқылған символ кодын қайтаратын read() әдісі шақырылады. Бұл код a өрісіне жаөзылады.

import java.io.* және import javax.swing.* инструкцияларымен java.io (енгізу-шығару системасы кластарын қолдану үшін) және javax.swing пакеттері (для использования Swing утилит библиотекасын қолдану үшін, соның ішінде өріс бар енгізу диалогты терезесі үшін) қосылады.

Әдебиеттер

  1. Васильев А.Н. Java. Объектно-ориентированное программирование: Учеб. пособ. – СПб.: Питер, 2011. – 400 с. [В]

  2. Казарин С.А., Клишин А.П. Среда разработки Java-приложений Eclipse: (ПО для объектно-ориентирован-ного программирования и разработки приложений на языке Java): Учеб. пособ., Москва, 2008. – 77 с. [К]

  3. Монахов В.В. Язык программирования Java и среда NetBeans. – 3-е изд., перераб. и доп. – СПб.: БХВ-Петербург, 2011. – 704 с.