Java基本语法之一执行HelloWorldjsp并讲解

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java基本语法之一.执行HelloWorld.jsp并讲解。

<%
…;…;
程式码
%>
<%@ page contentType="text/html; charset=Big5" %> 网页指令
//注解
Java基本语法之二.资料型别explique scope de cada tipo en pagina3/17
Java定义了八种primitive data type(基本资料型态)(分成三大族类)1,数值:整数(integer)或浮点数(precision)2,变数:字元(char)3,逻辑值:boolean。

整数:共四种byte(8-bit),short(16-bit),int(32-bit),long(64-bit)p2-4overflow不会有警告或只是出现。

浮点数:共两种float(32-bit)八位有效,double(64-bit)17位有效。

运算有问题,会有警示出现。

0.0/0.0 not a number.
Java基本语法之二之1
变数与常数final
变数(variable):是记忆体中被指定来储存某个数值位置的名称。

变数要先宣告才能使用。

使用时要起始变数值。

变数名称:为变数或Java中的任何东西取的名称都为标识者(identifier):英文,底线?,或金钱符号$。

变数的生命周期
Variable.jsp
Java基本语法之三.算术运算子先乘除後加减+-*/%。

Java基本语法三之一:arith.jsp
+,-,*,/,%及+又叫作字串串接的运算子
Java基本语法三之二:comparison.jsp
比较运算子
>>===!=<=<!=
Java基本语法三之四:
逻辑运算子:
&&&|||!
Java基本语法三之五:
=运算子
Java基本语法三之六:inc_dec.jsp
递增递减运算子: ++, --
Java基本语法三之七:
算术指派运算子:+= -= *= /= %= <<= >>>= >>= &= |= ^=
Java基本语法三之八:convert.jsp
型别转换
Java基本语法之四:流程控制:判断叙述与回圈流程控制
Java基本语法四之一:if.jsp 判断叙述A,If(){....} B,if(){...}else{…} C, if(){…}else if(){…}else{..}
if叙述
if(expression)
statement;
if(expression)
statementA;
else
statementB;
Java基本语法四之二:switch.jsp switch(var) {case:…break; case:… break; default:…}
Java基本语法四之三:for.jsp, nestedfor.jsp for回圈for(init n; check; upgrade){ … }
Java基本语法四之四:while.jsp while 回圈while(expression){….}
Java基本语法四之五:dowhile.jsp do while 回圈do{…}while(); //别忘了结尾之;
Java基本语法四之六:for_break.jsp continue.jsp break与continue
Anif.jsp 三元运算子order = yourAge > myAge? yourAge : myAge;它是一个expression,而不是一个statement,所以它可以夹杂其他运算子的复杂运算式中。

四之八之一:Array.jsp 阵列
定义阵列:
double[ ] myArray = new double[100];
int[] myIntArray = new int[5];
int[] hisArray = { 3,5,7, 25, 9};
int[] anArrary = new int[5];
anArray[0] = 2;
anArray[1] = 3;
…也可如此定义。

字元阵列
char[ ] message = new char[10];
char[ ] vowels = { ‘a’, ’e’, ’i’, ’o’, ’u’};
字串物件
String myString = “My first string”;
myString = “My second string”;
会输出什麽?Donde esta My first string ?
字串阵列
String str = new String[5];
public class LuckyStars
{
public static void main(String[] args)
{
String[] stars = {
"Robert Redford" , "Marilyn Monroe",
"Boris Karloff" , "Lassie",
"Hopalong Cassidy", "Trigger"
};
+ stars[(int)(stars.length*Math.random())]);
}
}
Java基本语法四之八之二:阵列长度的取得AryLen.jsp array_Var.length
Java基本语法之五:Java与物件导向
何谓类别
A class contains fields and methods。

类别结构[public] class Class_Name { }
类别成员变数:1,实例变数(instance variables)又叫non-static var2,类别变数(class variables)又叫static var。

类别方法变数:1,实例函式(instance methods)又叫non-static methods2,类别函式(class methods)又叫static methods。

定义函式
return_type methodName([arg1][,args2]..[,argsn]){ block of function body }
传回值return return_value; return; //no return
静态成员的存取方法:
double d = Math.PI; //static member
非静态成员的存取方法:
object_name.data_menber;
mySphere.xCenter;
this变数
void changeRadiius(double radius){ this.radius = radius;} // refer to class Sphere
this 的两种用途
i>指引出正在执行的物件,它可以替method指出相对应於this的变数
syntax:this.varName
ii>this可让同一class内的某一constructor内明确使用另一constructor。

syntax:this(args);
class MM {
double a,b,c;
MM(double a) {
this(a,0,1);//呼叫第三个constructor
}
MM(double a, double b) {
this(a,b,1); // 呼叫第三个constructor
}
MM(double a, double b, double c){//第三个constructor
this.a=a;
this.b=b;
this.c=c;
}
}
初使化资料成员与初使化区块
建构函式(Constructor):建立物件时,会用到的特定函式。

组成:1>无传回值,也不可有void等字样,2>函式名称与类别名称相同
方法负载(Method Overloading)(同名异式):只与函式签名(signature)有关(函式名称,参数型态,顺序,个数)
封包(Package)
namespacing,directories。

package tal;import package;
Java基本语法之六:字串的处理
Java基本语法六之一:String.jsp
String varName = new String(“JavaString”);
String varName = “JavaString”;
Java基本语法六之二:ConStr.jsp 字串的Concatenation(串接)
Java基本语法六之三:字串的比较ComStr.jsp
stringVar.equals(“strContext”);
Java基本语法六之四:字串的长度
stringVar.length();
Java基本语法六之五:字串大小写转换StrMod.jsp
stringVar.toLowerCase();
stringVar.toUpperCase();
Java基本语法六之六:部份字串的取得SubStr.jsp
stringVar. substring(int startIndex, int endIndex);
Java基本语法六之七:寻找字元或字串Find.jsp
stringVar.indexOf(String substr);
stringVar. lastIndexOf(int ch);
stIndexOf(String substr);
Java基本语法六之八:取代replace.jsp
stringVar.replace(char oldChar, char newChar);
以下是浓缩Java,作为JSP教学的补充教材:
Java简介,JDK安装介绍,Documentation安装介绍。

Simple (簡單)
Object-oriented (物件導向)
Network-savvy (網路功能)
Interpreted (直譯的)
Robust (可靠,不易發生錯誤)
Secure (安全性高)
Architecture neutral (架構中立)
Portable (可攜性高)
High performance (高執行效能)
Multithreaded (多執行緒)
Dynamic (有彈性)
Sun 公司是如此描述Java 語言的:
Java: A simple, object-oriented, network-savvy, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, dynamic language.
所有的Java 程式都需經過編譯(Compiled)轉為位元碼(bytecodes),然後由解譯器(Interpreter)執行。

這是Java 語言與其他高階語言較不一樣的地方。

位元碼(bytecodes) 並非機器執行碼(machine instruction code),而是具跨平台(platform-independent) 特質的中間碼(intermediate language),需由解譯器解譯(parsed)後才可執行。

Java 平台
在目前的電腦世界裏,有許多作業平台,如Windows 95、Windows NT、Macintosh、OS/2、UNIX 及Netware 等。

軟體必須分別編譯成各平台的執行檔才能於各平台執行,各平台之間的執行檔並不相容。

Java 平台是一個新的軟體平台,Java 虛擬機器(Java Virtual Machine)。

用Java 語言所撰寫的程式會被編譯成bytecode,而不是某一電腦機種的機器語言。

所以不論是在何種平台上,只要這平台上架有Java 平台,就可以執行Java 程式,不需經過重新編譯。

Java 平台讓發展者建立兩種不同的程式:
1. Applets
2. Application
<練習> 請由導覽器中開啟Java示範小程式
為了簡化指令長度(如上面執行示範小程式),在執行Java 指令前可先設定環境變數,讓系統能夠找到指令和相關程式庫所在。

set CLASSPATH=C:\jdk1.4\lib\classes.zip;.\.;%CLASSPATH%
set PATH=C:\jdk1.4\bin;%PATH%
以上設定完畢後,只需敲入以下指令:
>appletviewer .\example1.html

setup in autoexec.bat
PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\MOUSE;
set path=%path%;.;c:\jdk1.4\bin;
SET CLASSPATH=c:\jdk1.4\lib\tools.jar;
Test for correct of installation:
public class Test {
public static void main(String[] args) {
}
}
Java Source Code -> Java Compiler -> Java Object Code -> Java Virtual machine (Java Interpreter -> Computer O.S.
Java語法,基本資料型態及迴圈等介紹。

二元運算,單元運算(sign,increment,decrement etc.)
指定敘述assignment statement
public class Fruit
{
public static void main(String args[])
{
// Declare and initialize three variables
int numOranges = 5; // Count of oranges
int numApples = 10; // Count of apples
int numFruit = 0; // Count of fruit
numFruit = numOranges + numApples; // Calculate the total fruit
// Display the result
}
}
遞增(++)與遞減(--)prefix and postfix
op=運算子
字元char myCharacter = ‘X’;
Escape Sequence: “\” p2-24
Bitwise運算&|︿~
位移運算<< >> >>> (<<右邊補零,>>左邊要補上sign符號,>>>左邊補零)
程式註解// /* */ /** @… */
switch敘述:
switch(expression)

case n1:
case n2:
[default]:
}
變數的範圍(scope):
外部已有則內部不可宣告而使用,內部已有但外面照樣可宣告而使用。

Java無全域變數,只有區域變數。

class K{
int i = 1000; //local variable之scope
void f() {
int i=10;
g();
}
void g() {
}
}
public class Test{
public static void main(String[] args){
K k = new K();
k.f();
}
}//output 為10及1000
迴圈:1>for 2>while 3>do while
for(initialization_expression; loop_condition; increment_expression){
}
while(expession)
{
}
do
{
}
while(expression);
巢狀迴圈nested loop(如九九乘法表)
continue
labeled continue
break
labeled break
Java陣列,字串處理,Java Package介紹
字串的操作
結合字串
String myStr = “The quick brown fox” + “ jumps over the lazy dog”; String phrase = “Too many foods”;
phrase += “ makes one disgust.”;
子字串與搜尋子字串
indexOf(int ch)
indexOf(int ch, int index)
indexOf(String str)
indexOf(String str, int index)
String s1 = “Hello Java.”;
int index;
index = s1.indexOf(‘e’);
//substring
String str = “Springs.”;
String substr = null;
substr = str.substring(2);
類別成員的存取權限控制,類別的延伸繼承與類別的多形
存取屬性
private //從類別外無法存取
完全不指定//同一封包中的任何類別
protected //同一封包中的所有類別,以及任何子類別
public //任何地方,任何類別
類別的延伸繼承
名詞解釋:
衍生類別(derived class)又叫做子類別(subclass)
基礎類別(base class)又叫做父類別(superclass)
class Dog{
….

class Spaniel extends Dog{

}
覆載(overriding)基礎類別的函式(同名同式)
我們若於Dog class定義一個新的
public String toString(){return “It’s “ + name + “ the “ + breed; }就是overrride。

多形(polymorphism)
多形的運作是將子類別的物件以基礎類別的型態儲存而達成。

即父=子;
父類別:狗叫,三個子類別:虎頭犬叫,北京狗叫,吉娃娃叫。

Animal theAnimal;
Animal theAnimal =new Dog(“Rover”);
//以Dogy,Caty,Ducky及Animal四檔案舉例。

orA:之trypolymorphismDirectory
抽象類別(Abstract classes):凡類別裡有抽象函式的類別就叫做抽象類別
物件的類別轉換(Casting)
Spaniel aPet = new Spaniel(“Fang”);
Animal theAnimal = (Animal) aPet; // cast the Spaniel to Animal;
介面(interfaces):將多形機制中的函式自原父子類別中抽離成獨立機制者謂之。

介面與抽象類別之差異:
介面:常數and/or abstract functions(不必寫abstract字樣,也不必實作)
abstract class:(非常數)成員+abstract functions+一般functions
介面字樣:用implements,但介面與介面間的衍生關係仍用extends字樣。

檔案及物件之串流輸入輸出。

串流(Stream)可想像成一系列流入或流出你程式的位元組。

輸入串流(input stream)通常是磁碟中的檔案,鍵盤或是遠端電腦。

java.io封包支援兩種串流,二進位串流(binary stream)及字元串流(character stream)
File class
File(String pathname)
File myDir = new File(“C:\jdk1.4\src\java\io”); // a path only
Java例外處理
在例外處理機制中,我們也可看到OOP的精神,所以所有的exception都以class的形式存在,因此我們也可依inheritance特性自行定義新的例外類別。

Java也允許我們自行丟出例外。

例外處理功能不一定處理的就是錯誤-它也可以用來表示您的程式中一些特殊、不平常或值得您注意的事件。

但也不一昧的使用例外處理機制,免得造成系統負擔。

Runtime Exception有如下子類別:(系統會自動處理)
例外處理情形
try catch[s] finally,try catch[s],try finally w/sub try catch[s]等三種,至於第四種try-finally(無catch)的若try區塊內產生RuntimeException則不寫catch也可編譯及執行成功,因為VM內已有此機制,若方法是可能產生RuntimeException以外的例外時,若此方法已在別的class內有定義,則編譯不能過,若此方法(或運算)在別處沒有定義過,則連編譯都會有問題。

所以不建議使用。

圖形使用者介面(Graphical User Interface)的組件(components)
Event Handling事件處理
公式:
event_source_object.addXXXListener(event_handling_target_object)
{
listener_method(event_identifying_object){…} //event_identifying_object 就是event_type_object
}
公用類別java.util package可說是一般用途的工具組,而這個封包所包含的一些類別常被稱為容器類別(container classes)
物件間可有三種不同的積聚(Collection)型態:集合(set)、序列(sequence)及映射(map)
積聚內位置的移動:
java.util.Iterator interface(複取):被積聚類別(Collection interface)實作,只有三個非靜態方法(p10-7)while(iter.hasNext())
{
item = (MyClass) iter.next();
// Do something with item…
}
串列複取):是Iterator的子介面。

共9個方法。

=。

相关文档
最新文档