Įvadas į Java programavimo kalbą

Slides:



Advertisements
Similar presentations
Classes And Objects II. Recall the LightSwitch Class class LightSwitch { boolean on = true; boolean isOn() { return on; } void switch() { on = !on; }
Advertisements

STRING AN EXAMPLE OF REFERENCE DATA TYPE. 2 Primitive Data Types  The eight Java primitive data types are:  byte  short  int  long  float  double.
Chapter 1: Computer Systems
5/17/ Programming Constructs... There are several types of programming constructs in JAVA. - If-else construct or ternary operator - while - do-while.
Principles of Object-Oriented Software Development The language Java.
BASIC JAVA. Hello World n // Hello world program public class MyFirstJavaProgram { public static void main(String args[]) { char c = 'H'; String s =
COMP 14: Intro. to Intro. to Programming May 23, 2000 Nick Vallidis.
Copyright 2013 by Pearson Education Building Java Programs Chapter 1 Lecture 1-1: Introduction; Basic Java Programs reading:
JAVA PROGRAMMING PART II.
CSC3170 Introduction to Database Systems
Prepared by Uzma Hashmi Instructor Information Uzma Hashmi Office: B# 7/ R# address: Group Addresses Post message:
1 Identifiers  Identifiers are the words a programmer uses in a program  An identifier can be made up of letters, digits, the underscore character (
DAT602 Database Application Development Lecture 5 JAVA Review.
Java: Chapter 1 Computer Systems Computer Programming II.
General Features of Java Programming Language Variables and Data Types Operators Expressions Control Flow Statements.
Introduction to Programming David Goldschmidt, Ph.D. Computer Science The College of Saint Rose Java Fundamentals (Comments, Variables, etc.)
The Java Programming Language
Java means Coffee Java Coffee Beans The name “JAVA” was taken from a cup of coffee.
JAVA—Bitwise. Compiling/Executing a Java Application Source Code Java Compiler ByteCode > Java Interpreter Machine Code >
Hello.java Program Output 1 public class Hello { 2 public static void main( String [] args ) 3 { 4 System.out.println( “Hello!" ); 5 } // end method main.
Java The Java programming language was created by Sun Microsystems, Inc. It was introduced in 1995 and it's popularity has grown quickly since A programming.
JAVA (something like C). Object Oriented Programming Process orientated – code acting on data Object oriented – data controls access to code Encapsulation.
Java Language Basics By Keywords Keywords of Java are given below – abstract continue for new switch assert *** default goto * package.
1 Basic Java Constructs and Data Types – Nuts and Bolts Looking into Specific Differences and Enhancements in Java compared to C.
A Introduction to Computing II Lecture 1: Java Review Fall Session 2000.
Session 2 Operators, Decisions and Loops. Objectives Operators Casting data Decision marking structures Loops break, continue, return.
August 6, Operators. August 6, Arithmetic Operators.
© 2011 Pearson Education, publishing as Addison-Wesley Chapter 1: Computer Systems Presentation slides for Java Software Solutions for AP* Computer Science.
Object Oriented Programming Lecture 2: BallWorld.
Introduction to Java Programming by Laurie Murphy Revised 09/08/2016.
Copyright 2010 by Pearson Education APCS Building Java Programs Chapter 1 Lecture 1-1: Introduction; Basic Java Programs reading:
 It is a pure oops language and a high level language.  It was developed at sun microsystems by James Gosling.
1 Problem Solving  The purpose of writing a program is to solve a problem  The general steps in problem solving are: Understand the problem Dissect the.
Klasės ir Objektai Javoje
Information and Computer Sciences University of Hawaii, Manoa
Programming in Java Sachin Malhotra, Chairperson, PGDM-IT, IMS Ghaziabad Saurabh Chaudhary, Dean, Academics, IMS Ghaziabad.
Chapter No. : 1 Introduction to Java.
Išraiškos, sakiniai ir blokai
Lecture 2: Data Types, Variables, Operators, and Expressions
Algoritmai ir duomenų struktūros (ADS)
An Introduction to Java – Part I
مفاهیم اولیه زبان جاوا Java Basic Concepts
Algoritmai ir duomenų struktūros (ADS)
Statements, Comments & Simple Arithmetic
Lekt. Tomas G. Lipnevičius
Įvadas į Java programavimo kalbą
Nijolė Kriščiūnienė PASCAL Nijolė Kriščiūnienė
Gijos (Threads) Java kalboje
null, true, and false are also reserved.
نوع داده هاي انتزاعي Abstract Data Types
INTERAKTYVIŲ UŽDUOČIŲ KŪRIMO PROGRAMA
TO COMPLETE THE FOLLOWING:
Introduction to Java Programming
An Introduction to Java – Part I, language basics
An overview of Java, Data types and variables
محاضرة 1: مقدمة للمسـاق و مراجعـة للأساسيـات
Chapter 1: Computer Systems
Funkcijos 9 paskaita.
Operators August 6, 2009.
Windows Ribbon Framework
Units with – James tedder
Units with – James tedder
JavaScript Reserved Words
class PrintOnetoTen { public static void main(String args[]) {
Module 2 - Part 1 Variables, Assignment, and Data Types
OOP With Java/ course1 Sundus Abid-Almuttalib
Instructor: Alexander Stoytchev
Agenda Types and identifiers Practice Assignment Keywords in Java
Introduction to java Part I By Shenglan Zhang.
Presentation transcript:

Įvadas į Java programavimo kalbą 1 paskaita

Pastaba Skaidrių apatiniuose dešiniuose kampuose yra užrašai laužtiniuose skliausteliuose. Tai yra nuorodos, kur galima rasti panašios informacijos plačiau. Pilni adresai pateikti prezentacijos paskutinėse skaidrėse.

Java kalbos savybės - paprastumas Nėra rodyklių (pointer) aritmetikos, goto sakinio, tipų apibrėžimų ir pan. Nepalaiko metodų su kintamu parametrų sąrašu. Neturi globalinių kintamųjų. Neturi daugialypio paveldėjimo. Java pati atlaisvina atmintį (nėra destruktorių). [B-01] [B-02] [TIJ-01]

Kitos Java kalbos savybės Nepriklausoma nuo architektūros. Daugiaprocesė. Saugumas. Išskirtinių situacijų valdymas. [B-01] [B-02] [TIJ-01]

Sąvokos Pagrindinės objektiškai orientuotų (OO) kalbų sąvokos: Klasė – objekto aprašas; Objektas – konkrečios klasės esybė; Metodas – objekto savybė. [B-07] [TIJ-01] [TIJ-02]

Pirmoji programa [B-03] [TIJ-02] /** * The HelloWorldApp class implements an application that * simply displays "Hello World!" to the standard output. */ class HelloWorld { public static void main(String[] args) { //Display the string. System.out.println("Hello World!"); } [B-03] [TIJ-02]

Pagrindiniai duomenų tipai (1) Sveiki skaičiai: long (64 bitai) int (32 bitai) short (16 bitų) byte (8 bitai) [B-04] [TIJ-02]

Pagrindiniai duomenų tipai (2) Slankaus kablelio skaičiai double (64 bitai) float (32 bitai) [B-04] [TIJ-02]

Pagrindiniai duomenų tipai (3) Kiti duomenų tipai: char (vienas simbolis, 16 bitų) boolean (true / false) [B-04] [TIJ-02]

Operatoriai Aritmetiniai: +, -, *, /, %, ++, --, +=, -=, *=, /=, %=. Loginiai / bitiniai: ~ (NOT), & (AND), | (OR), ^ (XOR), >> (shift right), << (shift left), &&, ||, !. Palyginimo: ==, !=, >, <, >=, <=. [B-05] [TIJ-03]

Kintamųjų ir operatorių pvz. class BasicMath  { public static void main(String args[]) { int a = 1; a++; int b = a *  3; int c = b / 4; int d = b - а; int e = -d; System.out.println("a =  " +    а); // a = 2 System.out.println("b =  " +    b); // b = 6 System.out.println("c =  " +    c); // c = 1 !!! System.out.println("d =  " +    d); // d = 4 System.out.println("e =  " +    e); // e = -4 } [B-04] [B-05] [TIJ-03]

Modulio pvz. [B-04] [B-05] [TIJ-03] class Modulus { public static void main (String args []) { int x = 42; double у = 42.3; System.out.println("x mod 10 = " + x % 10); System.out.println("y mod 10 = " + у % 10); } c:> java Modulus x mod 10 = 2 y mod 10 = 2.3 [B-04] [B-05] [TIJ-03]

Didinimo / mažinimo vienetu pvz. class IncDec { public static void main(String args[]) { int a = 1; int b = 2; int c = ++b; int d = a++; c++; System.out.println("a = " + a); // a = 2 System.out.println("b = " + b); // b = 3 System.out.println("c = " + c); // c = 4 System.out.println("d = " + d); // d = 1 } [B-04] [B-05] [TIJ-03]

if-else ir switch sakiniai if (sąlyga) { vykdyti_jei_tenkinama_sąlyga; } else { vykdyti_jei_netenkinama_sąlyga; } switch (išraiška) { case reikšmė1: break; case reikšmė2: case reikšmėN: default: [B-06] [TIJ-03]

if-else pavyzdys [B-06] [TIJ-03] class IfElseDemo { public static void main(String args[]) { int a = 5; if (a > 0) { System.out.println(“teigiamas”); } else if (a == 0) { System.out.println(“nulis”); } else { System.out.println(“neigiamas”); } C:> java IfElseDemo teigiamas [B-06] [TIJ-03]

switch pavyzdys [B-06] [TIJ-03] class SwitchSeason { public static void main(String args[]) { int month = 4; String season; switch (month) { case 12: case 1: case 2: season = "Winter"; break; case 3: case 4: case 5: season = "Spring"; //... default: season = "Bogus Month"; } System.out.println("April is in the " +    season +     "."); [B-06] [TIJ-03]

Ciklai For ciklas: While ciklas: [B-06] [TIJ-03] for (pradinė_reikšmė; pabaigos_sąlyga; pokytis) { // sakiniai ciklo viduje } While ciklas: while (sąlyga) { // kartoti, kol sąlyga == true [B-06] [TIJ-03]

for pavyzdys [B-06] [TIJ-03] class ForDemo { public static void main(String args[]) { for (int i = 0; i < 10; i++) System.out.println("i = " + i); } [B-06] [TIJ-03]

while pavyzdys [B-06] [TIJ-03] class WhileDemo { public static void main(String args[]) { int n = 2; int a = 1; while (n <= 1024) { System.out.println(“2^“ + a + “=“ + n); n *= 2; a++; } [B-06] [TIJ-03]

Konstruktoriai Skirti sukurti konkrečiam klasės objektui. Gali būti keli konstruktoriai su skirtingais parametrais. Konstruktoriaus gali ir nebūti. Tada naudojamas “default” konstruktorius. Konstruktorius sugrąžina sukurtą objektą. Konstruktoriaus vardas turi sutapti su klasės vardu. [B-07] [TIJ-02] [TIJ-04]

Konstruktoriai ir jų panaudojimas class Point { int x; int y; // konstruktorius be parametrų public Point() { this.x = 0; this.y = 0; } // konstruktorius su parametrais public Point(int x, int y) { this.x = x; this.y = y; class PointDemo { public static void main(String args[]) { Point p1 = new Point(); Point p2 = new Point(1, 3); [B-07] [TIJ-02] [TIJ-04]

Metodai Sintaksė: [B-07] [TIJ-02] [metodo_modifikatoriai] [grąžinama_reikšmė] vardas( parametro1_tipas parametras1, parametro2_tipas parametras2, ...) { metodo_kūnas; } [B-07] [TIJ-02]

Metodų modifikatoriai public – pasiekiamas visur, kur pasiekiama metodo klasė. “nieko” – pasiekiamas tik šio paketo klasėse. private – pasiekiamas tik šioje klasėje. abstract – metodas neturi kūno ir privalo būti perdengtas. final – metodas negali būti perdengtas. static – galima taikyti klasei (be objekto). Nepersidengia. [B-07] [TIJ-04] [TIJ-05]

Metodų pvz. [B-07] public class MethodTest { public static void main(String args[]) { int i = getX(); // kompiliatoriaus klaida } public int getX() { return 10; /* Klaida, nes neaišku, kuriam objektui kviesti metodą getX() */ [B-07]

Klaidos ištaisymas Nr. 1 [B-07] /* reikia sukurti objektą */ public class MethodTest { public static void main(String args[]) { MethodTest test = new MethodTest(); int i = test.getX(); } public int getX() { return 10; [B-07]

Klaidos ištaisymas Nr. 2 [B-07] /* reikia paskelbti metodą statiniu */ public class MethodTest { public static void main(String args[]) { // klasės vardas nebūtinas, jei tai yra tos // pačios klasės viduje (kaip šiuo atveju) int i = MethodTest.getX(); // arba: int i = getX(); } public static int getX() { return 10; [B-07]

Metodų perkrovimas (overloading) Tai polimorfizmo atvejis, kai klasė turi kelis metodus tais pačiais vardais: Metodai privalo skirtis savo parametrų tipais ir / arba kiekiu. Metodai, besiskiriantys tik grąžinamos reikšmės tipu, negalimi. Metodo tipą nusako jo iškvietimo formatas. [B-07] [TIJ-04]

Metodų perkrovimas [B-07] [TIJ-04] public class Point { int x; int y; public void setCoords(int x, int y) { this.x = x; this.y = y; } public void setCoords(float x, float y) { this.x = Math.round(x); this.y = Math.round(y); public static void main(String args[]) { Point p1, p2; p1.setCoords(0, 5); p2.setCoords(3.0, -2.4); [B-07] [TIJ-04]

Statiniai ir objekto kintamieji Jei prieš kintamajį yra modifikatorius “static”, tai kintamasis yra bendras visiems tos klasės objektams. Kitu atveju kintamasis būna atskiras kiekvienam objektui. [B-04] [B-07] [TIJ-04]

Kintamųjų pvz. [B-04] [B-07] [TIJ-04] class Number { public int a = 0; public static int b = 0; public static void main(String args[]) { Number n1, n2; n1.a = 1; n1.b = 2; // arba (dažniau naudojama) Number.b = 2; n2.a = 3; n2.b = 4; System.out.println(n1.a + “ “ + n1.b + “ “ + n2.a + “ “ + n2.b); } [B-04] [B-07] [TIJ-04]

Interfeisai Interfeisas – tai griežtai apibrėžtas metodų rinkinys, kurie turi būti įgivendinti, tą interfeisą realizuojančioje klasėje. Vieną interfeisą gali realizuoti daug klasių. Viena klasė gali realizuoti daug interfeisų. [B-08] [TIJ-06]

Interfeiso pvz. (1) [B-08] [TIJ-02] interface Sort { public Object sort(Object array); } public class QuickSort implements Sort { public Object sort(Object array) { // masyvo rūšiavimo algoritmas (pvz., QuickSort) public class BubbleSort implements Sort { // masyvo rūšiavimo algoritmas (pvz., BubbleSort) } //Tęsinys kitoje skaidrėje [B-08] [TIJ-02]

Interfeiso pvz. (2) [B-08] [TIJ-02] public class SortDemo { public static void main(String args[]) { SortDemo demo = new SortDemo(); Sort s1 = new QuickSort(); Sort s2 = new BubbleSort(); Object sorted = demo.sortArray(s1); } public Object sortArray(Sort s) { Object array = new Object[10]; // ... atsitiktinai sugeneruojam masyvo reikšmes return s.sort(array); [B-08] [TIJ-02]

Paketai Dažnai vieno projekto klasės yra apjungiamos į paketą (arba kelis paketus). Tokiu būdu galima išvengti besidubliojančių skirtingų programuotojų klasių, galima greičiau orientuotis, ką konkreti klasė atlika. [B-08] [TIJ-05]

Paketai ir jų panaudojimas package lt.ktu.dsplab.figures; public class Rectangle { //klasės kūnas } -------------------------------------- package lt.ktu.dsplab.rts; import lt.ktu.dsplab.figures.*; //arba import lt.ktu.dsplab.figures.Rectangle; public class RTSystem { Rectangle r = new Rectangle(); // … [B-08] [TIJ-05]

Pagrindiniai teiginiai iš Java Coding Conventions Eilutės atitraukimas (indentation) – 4 simboliai. Vengti ilgesnių eilučių nei 80 simbolių. if-else sakiniuose ir cikluose visada naudoti { ir }, net jei viduj tik vienas sakinys. Naudoti javaDoc kometarus; Aprašyti kintamuosius po vieną vienoje eilutėje. Vienoje eilutėje – vienas sakinys. Po metodo pavadinimo, tarpas prieš skliaustelį nededamas. Po tipo keitimo (cast) skliaustų palikti tarpą. Metodai ir kintamieji prasideda mažąja reide, jei žodis sudurtinis, kitų žodžių pradžios – iš didžiosios raidės. Konstantos rašomos vien didžiosiomis raidėmis. [TIJ-02]

JavaDoc komentarai Programose naudojant JavaDoc komentarus, vėliau galima automatiškai sugeneruoti programos dokumentaciją, naudojant komandą “javadoc”. JavaDoc komentarai turi būti prieš: klasę, klasės kintamuosius, metodus. [TIJ-02]

Pagrindiniai JavaDoc rezervuoti žodžiai @param – aibūdinamas metodo parametras. @return – apibūdinama grąžinama metodo reikšmė. [TIJ-02]

Programos su JavaDoc pvz. (1) package lt.ktu.fcm; /** * Point with two int type coordinates */ public class Point { * The x coordinate private int x; * The y coordinate private int y; // tęsinys kitoje skaidrėje [TIJ-02]

Programos su JavaDoc pvz. (2) /** * Moves the point to the given location * * @param x The new x coordinate value * @param y The new y coordinate value */ public int move(int x, int y) { this.x = x; this.y = y; } * Gets the Y coordinate * @return The y coordinate value public int getY() { return this.y; [TIJ-02]

Nuorodos (1) B-01: http://www.ifko.ktu.lt/~ekaza/T120b111/Book2/01.HTM

Nuorodos (2) Adresu http://www.mindview.net/Books galima rasti ir parsisiųsti knygą elektroniniame formate – “Thinking in Java, 3rd Edition”. Java aprašymas + krūvos pavyzdžių. Nuorodose pateikiami failų pavadinimai, kurie yra archyve: TIJ-01: TIJ303.htm TIJ-02: TIJ304.htm TIJ-03: TIJ305.htm TIJ-04: TIJ306.htm TIJ-05: TIJ307.htm TIJ-06: TIJ310.htm

Kitos naudingos nuorodos http://java.sun.com/ - pagrindinis Java sukūrėjos Sun Microsystems puslapis. Čia rasite visko... http://java.sun.com/docs/books/tutorial/index.html - the Java Tutorial. http://java.sun.com/apis.html - the Java API Documentation. http://java.sun.com/docs/codeconv/index.html - Code Conventions. http://www.javaworld.com/columns/jw-tips-index.shtml - Java tips. http://developer.java.sun.com/developer/JDCTechTips/ - Java Technical Tips.