程序员标准教程上课指导.docx
《程序员标准教程上课指导.docx》由会员分享,可在线阅读,更多相关《程序员标准教程上课指导.docx(54页珍藏版)》请在冰豆网上搜索。
程序员标准教程上课指导
SUNJAVA程序员标准教程
课堂一:
2011/2/22
SUN:
2010.10被Oracle收购
语言分析:
C是面向过程的,不便于分析和设计,不能处理GUI,
数据的访问,指针,文件操作比较复杂,异常
JAVA:
目前主流的面向对象的语言(跨平台的),C#、C++
java语言的特性:
跨平台健壮性安全性可移植性“一次编写,到处运行”
SUN公司的Java语言体系:
三个平台:
JavaSEJAVA标准版本CS系统
JavaME移动版本手机开发
JavaEE企业平台BS企业开发
开发平台:
运行环境(JDK):
安装:
1、直接单击下一步,注意的是不要更改安装路径,而且要记住默认的安装路径
2、设置系统环境变量path和classpath
环境变量设置的位置在哪?
右键单击我的电脑—》属性—》单击高级系统设置—》高级—》环境变量
搜索path=C:
\ProgramFiles\Java\jdk1.6.0_10\bin;
测试环境是否可用?
去哪里测试?
开始菜单里面的运行
输入java回车如果出现:
在输入javac,如果出现:
说明成功。
如果还是没有出来,请配置CLASSpath环境变量:
CLASSPATH=C:
\ProgramFiles\Java\jre6\lib\rt.jar;
体验程序:
在记事本里面编辑代码如下:
publicclassHelloWorld{
//类体声明变量、声明方法(函数)
/*
你好,我也是注释,不过我是多行注释
*/
/**
我也是注释,不过我是可以通过javadoc生成文档的
*/
publicinta=90;
publicstaticvoidmain(String[]args){
System.out.println("Hello10WEB专业!
");
}
}
另存为HelloWorld.java文件
编写的时候要注意:
1、要注意大小写
3、另存为的时候要保存为后缀为java的文件而且文件名要和类名一致。
4、通过javac和java运行程序了
实验问题:
有些机器有环境问题…..
开发工具:
传统的开发工具:
记事本、Editplus
专业的开发工具:
NetBeans、eclipseforjavaEEMyeclipse
课堂二:
2011/2/22
体验java的优势:
效果展示(JDKDemo)
java
javac
JVM:
java虚拟机
JDKAPI:
帮助手册chm
举例:
System.out.println();
搜索:
JDK1.6.0API中文版下载
课堂三:
java基本数据类型
1、程序体验:
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
publicclassTest{
publicstaticvoidmain(String[]args){
//可以运行的代码
System.out.println("请输入10个学生的成绩,以回车结束....");
intsum=0;
for(inti=0;i<10;i++){
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
try{
Stringtemp=br.readLine();
intscope=Integer.parseInt(temp);
sum+=scope;
}catch(IOExceptione){
System.out.println("计算错误!
");
}
}
System.out.println("您输入的总成绩是:
"+sum+"分");
}
}
(1)什么是合法的标识符?
字母、下划线、$开头,由数字、字母、下划线、$组成的称为合法的标识符!
注意:
可以使用中文
(2)合法的标识符不能是关键字或者保留字
请问以下哪个不是关键字:
MainstringPublicVoidclass
2、数据类型
(1)整型
a、长整型long8字节64bit
b、短整型byte(1字节8bit)short(2字节16bit)int(4字节32bit)
(2)浮点型
a、单精度float(4字节32bit)
b、双精度double(8字节64bit)
(3)字符型char(2字节16bit)
(5)布尔型boolean(1字节8bit)
3、数据类型体验程序
publicclassTest2{
inta;//实例变量
longb;
charc;
booleand;
floate;
doublef;
publicstaticvoidmain(String[]args){
inti;//局部变量需要初始化
System.out.println(newTest2().a);//0
System.out.println(newTest2().b);//0L
System.out.println(newTest2().c);//'\u0000'代表的字符
System.out.println(newTest2().d);//false
System.out.println(newTest2().e);//0.0F
System.out.println(newTest2().f);//0.0
//System.out.println(i);直接输出的话报错,因为局部变量需要初始化
}
}
数据类型转换表:
byte---》shortchar----》int---》long---》double
---》float---》double
4、常量和变量
命名时要注意:
变量命名为小写字母常量名全部大写
5、java变量命名规范
类名:
首字母大写
方法名:
首字母小写从第二个单词的首字母大写
变量:
全部小写
常量:
全部大写
课堂三:
java运算符和表达式
运算符的概念:
与标识符进行区分
样例代码:
publicclassTest3{
publicstaticvoidmain(String[]args){
//算数运算符
inti=12;
intj=5;
//System.out.println(i%j);//符号取决于被除数
//System.out.println(i/j);
System.out.println(++i);
//关系运算符
Stringa=newString("焦宁波");
Stringb=newString("焦宁波");
if(a==b){
System.out.println("a==b");
}else{
System.out.println("a!
=b");
}
//逻辑运算符
bytex=6;//00000110
bytey=9;//00001001
System.out.println(~x);//11111001-7
System.out.println(x|y);//0000111115
System.out.println(x>>3);//000000000
System.out.println(false||true);//true
System.out.println(false|true);//true
System.out.println(x&y);//000000000
System.out.println(false&&false);//false
System.out.println(false&false);//false
inttest=45;
if(23<22&&test++>44){//短路或
System.out.println(test);
}
System.out.println(test);
Stringstr="abc";
System.out.println(1+str);//此处的+为连接符
System.out.println(1+2+str);//3abc
System.out.println(str+1+2);//abc12
System.out.println(1+str+2);//1abc2
intk=34;
k=34>23?
45:
67;
System.out.println(k);
Stringstr2="abc";
if(str2instanceofString){
System.out.println("偶是字符串...");
}
}
}
课堂四:
流程控制和数组
课堂程序体验:
publicclassTest4{
/**
*文档注释
*做基于数组的数据的累加
*
*/
publicstaticvoidmain(String[]args){
//alt+/
doublesvg=0.0;
doublesum=0.0;
//什么是数组?
是很多相同数据类型的数据集
//引用变量
//数组的声明数组类型变量【】
int[]x,y;//说明xy都是数组类型
intx,y[];//说明x是基本类型,y是数组
//赋值语句默认的初始值是0
y=newint[3];
//动态初始化
x=newint[3];
//静态初始化不能分开单独使用
double[]scopes={45.0,78.9,90.0,67.8};
for(inti=0;isum+=scopes[i];
}
svg=sum/scopes.length;
System.out.println("总成绩是:
"+sum)
System.out.println("平均成绩是:
"+svg);
//另外的遍历方式
//数组在声明的时候不能指定长度,因为在声明的时候java虚拟机是不分配内存空间的
int[]a;
a=newint[3];
for(intj:
a){//增强型for语句
System.out.println("你好"+j);
}
}
}
课堂五:
流程控制语句(分支语句和循环语句)
1、程序体验:
publicclassTest5{
/**
*@paramargs
*分支语句的测试
*1路if
*2路ifelse
*N路switchcase
*/
publicstaticvoidmain(String[]args){
int[]scope={34,56,78,29,58,90,80};
for(inti=0;iif(scope[i]>=90){
System.out.println("A");
}else{
if(scope[i]>80){
System.out.println("B");
}else{
if(scope[i]>70){
System.out.println("C");
}else{
if(scope[i]>60){
System.out.println("D");
}else{
System.out.println("不及格");
}
}
}
}
}
if(20<=scope[3]&scope[3]<=30);
scope[3]=45;
System.out.println(scope[3]);
System.out.println("---------------------------------");
/**
*N路分支语句switchcase
*1、break的有无2、default的位置3、改变default位置并去掉其break
*4、请问:
switch中可以传入什么类型的值?
*byteshortintcharenum
*/
for(inti=0;iinttemp=scope[i]/10;
switch(temp){
default:
System.out.print("不及格");
System.out.print("哈哈,我是多余的..");
//break;
case10:
case9:
System.out.print("A");
break;
case8:
System.out.print("B");
break;
case7:
System.out.print("C");
break;
case6:
System.out.print("D");
break;
}
}
}
2、循环语句
/**
*循环语句
*for2种:
传统的for、增强的for
*while2种:
while、do{}while();
*
*/
System.out.println("************************************");
//intc,d;
//三个语句是否可以省略?
可以但是要有";"号代表的是无限循环
for(intd=0;d<2&&true;d++){
System.out.println("OK");
}
do{
System.out.println("卡哇伊");
}
while(true||23>34);
}
//用在什么情况下?
不确定循环次数的时候
/**
*1、所有的for循环都可以改用while循环X
*2、所有的while循环都可以改用for循环可以的
*
*/
while(12>=3){
System.out.println("12>3");
}
课堂六类的定义和使用
主要的知识点:
类的定义、定义属性和方法、访问这个类、构造器、变量(
类变量和实例变量)
publicclass人{
//实例(对象)变量类变量
staticString身高;
publicString身份证;//身份证
privateStringname;//姓名
char性别;
Stringbirthday;
/**
*构造器
*1、名字(和类名一致)
*2、返回值(无返回值,但是也不能写void)
*3、调用的时候、人a=new人();
*4、特殊用途给类变量做初始化
*考点:
*1、给你一个类?
判断下面哪个是这类的构造器满足2点就OK
*2、默认的构造器的判断
*所有类的祖先都是Object
*人(){
*super();
*}
*3、默认构造器的存活时间
*如果用户不自己定义构造器的话默认的构造器是一个不带参数的
*如果用户定义自己的构造器那么默认的构造器就会消失
*4、构造器不是一个的可以有多个
*5、构造器也叫构造方法称为方法的-->重载(overload)
*经常遇到的重载是构造器的重载
*/
人(char性别,Stringbirthday){
this.性别=性别;//赋值语句
this.birthday=birthday;
}
人(){
}
voidseeM(Stringname){
System.out.println(this.name+"看到电影是"+name);
}
//诞生出来一个人
publicstaticvoidmain(String[]args){
//类变量
身高="1977-4-9";
//类变量的访问
System.out.println(人.身高);
人小三=new人('男',"2009-4-7");//按照人类的模版生产一个人
小三.name="王小丽";
小三.身份证="350458345876587436x";
System.out.println(小三.birthday);
小三.seeM("阿凡达");
System.out.println(小三.身高);
//谁是类(人)谁是实例(小三)new
}
}
课堂七:
thisstatic的用法
publicclass银行账户{
//静态变量类变量
staticintcount;//0
//静态块或自由块
/**
*静态块什么时候执行?
*1、清空main方法的时候可以执行
*2、没有main方法的时候执行但是提示main方法不存在(运行时异常)
*java程序中只有静态块不是main方法运行的
*当类被加载的时候运行而且仅仅执行一次
*/
static{
System.out.println("我是静态块...");
}
//非静态变量实例变量
privateString帐号;
publicString密码;
double金额;
publicStringget帐号(){
return帐号;
}
//非静态方法实例方法
publicvoidset帐号(String帐号){
this.帐号=帐号;
if(帐号.length()<16){
System.out.println("您输入的帐号长度错误!
");
}
//实例方法中可以调用静态方法
getInfo();
}
double取款(double金额){
if(this.金额-金额>0){
return金额;
}
else{
return-1;
}
}
String存款(double金额){
this.金额+=金额;
return"成功";
}
银行账户(String帐号,String密码,double金额){
this(34.0,"47825","00");//this的第二种用法必须写在第一行,而且默认代表构造器
this.帐号=帐号;//this的第一中用处
this.密码=密码;
this.金额=金额;
}
银行账户(double金额,String帐号,String密码){
}
银行账户(){
}
//静态方法类方法
staticvoidgetInfo(){
//get帐号();静态方法中不能调用非静态方法(理解)
System.out.println("工行牡丹卡");
}
publicstaticvoidmain(String[]args){
银行账户李四=new银行账户("123496329749243","347284",45.0);
李四.count=45;
银行账户王五=new银行账户("123496329749234","347284",23.0);
王五.count=46;
//调用静态方法
银行账户.getInfo();
//访问静态变量
System.out.println(李四.count);
//包装类的使用
Integermyj=newInteger(23);
myj.getInteger("23");
System.out.println(myj+56);
}
}
课堂八:
枚举的定义和使用
1、程序体验
publicclassTest6{
//JDK1.5中的新特性自动装箱和拆箱、枚举
/**
*1、枚举类型的定义(特殊的符号)
*2、语法enum变量名{枚举类型的值}
*3、如何使用枚举
*用法一:
枚举变量名.属性
*用法二:
类名.枚举类型的变量名.属性
*/
/**
*没有字段、方法、构造器的枚举类型
*
*/
privateenumMyEnum{
RED,YELLOW,GREEN;//数值是有限个的
}
/**
*有字段、方法、构造器的枚举类型
*
*/
privateenumWithMethodEnum{
RED(0),YELLOW
(1),GREEN
(2);
privateintcount=9;
//构造器之前只能用private或不写(default)
privateWithMethodEnum(intx){
count=x;
}
publicvoidgetCount(){
System.out.println("我的值是"+count);
}
}
publicstaticvoidmain(String[]args){
System.out.println(MyEnum.RED);
System.out.println(Test6.MyEnum.RED);
//枚举类型可以用在sitchcase语句中
switch(Test6.MyEnum.RED){
caseRED:
System.out.println("红灯");
break;
caseYELLOW