450 likes | 469 Vues
برنامه نویسی پیشرفته. مدرس: مهدی عمادی. مقدمه. Java یک زبان برنامه نویسی مستقل از سکوی اجرا است در سال 1991 توسط شرکت Sun Microsystems پیشنهاد شد C یک زبان برنامه نویسی با امکانات مناسب برای دسترسی به سطوح پایین سیستمها و مدیریت مستقیم سخت افزار
E N D
برنامه نویسی پیشرفته مدرس: مهدی عمادی
مقدمه • Java یک زبان برنامه نویسی مستقل از سکوی اجرا است • در سال 1991 توسط شرکت Sun Microsystems پیشنهاد شد • C یک زبان برنامه نویسی با امکانات مناسب برای دسترسی به سطوح پایین سیستمها و مدیریت مستقیم سخت افزار • Java زبانی مناسب برای برنامه های بزرگ و پیچیده به خصوص تحت شبکه و اینترنت
کتاب برنامه نویسی • JAVA how to program, Seventh Edition, Deitel & Deitel, 2007 • Code Complete, Second Edition, Steve McConnell, Microsoft Press, 2004.
استفاده به عنوان: • کلاینت برنامه های وب (Applet) 5 درصد • برنامه عادی (Desktop Application) 45 درصد • سرور (servlets/JSP/EJB) 50 درصد
Java • Source Code Java Bytecode JIT Compiler or Interpreter Compiler (javac) Execution Java Bytecode Java is Cross-Platform? • برنامه java در یک کامپیوتر با داشتن یک کامپایلر تولید می شود • بایت کد تولید شده یک فایل است که با انتقال به هر سخت افزار و هر سیستم عاملی که ماشین مجازی جاوا را دارد اجرا خواهد بود Compile Time زمان کامپایل Run Time زمان اجرا
Evolution of Programming Languages • High-level languagesmake programming easier • Closer to spoken languages • Examples • Basic • FORTRAN • COBOL • C/C++ • Java
Object-Oriented Programming • برنامه نویسی شی گرا یک ایده کامل برای پیاده سازی برنامه های کامپیوتری است • جاوا یک زبان کامل برای ایده برنامه نویسی شی گرا می باشد
Java is Simple? • Truth: Java greatly simplifies several language features • Java has automatic memory management • Does Windows and takes out the garbage • No dangling pointers. No memory leaks. • A problem for real-time programs • Java simplifies pointer handling • No explicit reference/dereference operations • Everything is a pointer (like Lisp) • No makefiles • No header files • C++ syntax streamlined
Java is Powerful? • Myth: Java will increase programmer productivity for all applications by XXX%. • Myth: Java will kill C++ • Myth: All software should be written in Java • Unix utilities: C • Small/medium Windows-only programs: Visual Basic • String parsing: Perl • High-performance, single-platform OO systems: C++ • Air traffic control, aircraft flight software: Ada • Knowledge-based systems: Lisp/CLOS/Prolog
Basic Hello World Application • “Application” is Java lingo for a stand-alone Java program • Note that the class name and the filename must match • A file can contain multiple classes, but only one can be declared public, and that one’s name must match the filename • File HelloWorld.java: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, world."); } }
Basic Hello World Application (Continued) • Compiling: javac HelloWorld.java • Running: java HelloWorld • Output: Hello, world.
Command Line Arguments • File ShowArgs.java: public class ShowArgs { public static void main(String[] args) { for(int i=0; i<args.length; i++) { System.out.println("Arg " + i + " is " + args[i]); } } }
Command Line Arguments, Results • Compiling and Running: > javac ShowArgs.java > java ShowArgs fee fie foe fum Arg 0 is fee Arg 1 is fie Arg 2 is foe Arg 3 is fum
Basic Hello WWW Applet • File HelloWWW.java: import java.applet.Applet; import java.awt.*; public class HelloWWW extends Applet { public void init() { setBackground(Color.gray); setForeground(Color.white); setFont(new Font("SansSerif", Font.BOLD, 30)); } public void paint(Graphics g) { g.drawString("Hello, World Wide Web.", 5, 35); //5=left, 35=bottom } }
Basic Hello WWW Applet (Continued) • File HelloWWW.html: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>HelloWWW: Simple Applet Test.</TITLE> </HEAD> <BODY> <H1>HelloWWW: Simple Applet Test.</H1> <APPLET CODE="HelloWWW.class" WIDTH=400 HEIGHT=40> <B>Error! You must use a Java enabled browser.</B> </APPLET> </BODY> </HTML>
Basic Hello WWW Applet (Continued) • Compiling: javac HelloWWW.java • Running: Load HelloWWW.html in a Java-enabled browser
Customizing Applets with PARAM import java.applet.Applet; import java.awt.*; public class Message extends Applet { private int fontSize; private String message; public void init() { setBackground(Color.black); setForeground(Color.white); fontSize = getSize().height - 10; setFont(new Font("SansSerif", Font.BOLD, fontSize)); // Read heading message from PARAM entry in HTML. message = getParameter("MESSAGE"); } public void paint(Graphics g) { if (message != null) g.drawString(message, 5, fontSize+5); } }
Customizing Applets with PARAM, cont. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>The Message Applet</TITLE> </HEAD> <BODY BGCOLOR="WHITE"> <H1>The <CODE>Message</CODE> Applet</H1> <P> <APPLET CODE="Message.class" WIDTH=325 HEIGHT=25> <PARAM NAME="MESSAGE" VALUE="Tiny"> <B>Sorry, these examples require Java</B> </APPLET> <P> <APPLET CODE="Message.class" WIDTH=325 HEIGHT=50> <PARAM NAME="MESSAGE" VALUE="Small"> <B>Sorry, these examples require Java</B> </APPLET> ... </BODY> </HTML>
Requirements for the Course • Browse-to-download: Java SE JDK 6 latest update for Windows Platform http://java.sun.com/ make sure to Accept License Agreement • Install JDK (use defaults) • Browse-to-and-download: NetBeans IDE 6.5 IDE with Java SE update ? Bundle http://www.netbeans.org/make sure to Accept License Agreement • install NetBeans (use defaults) • IntelliJ IDEA 6.0 • Eclipse - IBM Rational Developer - Jdeveloper - Jbuilder - etc. • NOTEPAD !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Evolution of Programming Languages • Compiler: a program that translates a program written in a high-level language into the equivalent machine language • In the case of Java, this machine language is the bytecode • Java Virtual Machine (JVM): hypothetical computer developed to make Java programs machine independent
First Cup of Java • A Step by step example on how to • Create • Compile • Run a java program • Plus the works • What is a Programming Language • What is Object Orientation
First Java Program • Does and Don'ts • Java Environment • A Simple Program that Displays Hello World • Create the Program • Compile the Program • Load and Run the Program
First Java Program The Do not(s) • Do Not Use the Desktop or “My Documents” as a folder for your java programs • Always Use the Letter Drive as your Root (A, C, D, etc.) • Java Does not Like Spaces in File Names or Folder Names Java is case Sensitive • the string hello.Java is not the same as Hello.java
First Java Program Start a DOS Commands windowStart Run cmd
Which Java Environment are you runningjavacis not recoginzed: it is not in my path
Search your drive for the latest JDKHardwire the path to point to the bin folder
Where is my First Java ProgramRemember: java is case sensetive
Where is my First Java Programedit and save to the Homeworks folder
Where is my First Java ProgramUse the dir command: 228 Bytes
My First Java ProgramComments • Java is case sensitive • File name extension is .java (Lower case) • Class Name in publicclassHelloWorldShould exactly match the first part of the filename HelloWorld.java • A runnable Java Program is a Java class with a method called:public static void main(String[] args){//Control Flow Code}
Compiling My First Java Programjavac Helloworld.javaHelloworld.class is created
Compiling My First Java ProgramWhere did HelloWorld.class come from
Try thisHelloWorld.java programCreate, compile and run // // My First Java Program //our Info // // import javax.swing.*; public class HelloWorld{ public static void main(String[] args){ try{ String s = JOptionPane.showInputDialog("Please Enter your Name"); System.out.println("Hello " + s); System.out.print(" Welcome to CIS at WTAMU"); } catch(Exception e){ } } }
Java 2 Standard Edition Components http://java.sun.com/javase/6/docs/