第一天课程(2012-7-10)JAVA常用的名词JVM java 虚拟机Application 应用程序必须有一个入口的方法叫做public static void main(String[] args){}Applet 小应用程序该程序必须要内嵌在一个容器中运行,它有自己的生命周期重点: JAVA的开发环境JDK: java 开发工具集JDK版本问题1.4不支持泛型5.0 泛型 6.0枚举默认安装路径C:\Program Files\Java\JRE: JAVA运行时环境环境变量的配置(1)Path:window寻找可执行应用程序的一个查找路径不同的路径之间使用;来分隔配置一个路径C:\Program Files\Java\jdk1.6.0_26\bin(2)CLASSPATH 告诉系统到那些目录下面去查找对应的要执行的文件.;D:\3020\j2se\cx\chapter1.表示当前目录预习作业:常用的DOS命令切换目录查询文件拷贝文件重命名移动文件*表示通配符*.java *.*常用java命令Javac 编译命令主要将以.java结尾的Java文件编译生成以.Class结尾的二进制字节码文件。
Javac java文件名.javaJava 运行命令java 类名Javadoc生成帮助文档命令 javadoc java文件面向对象的基本概念类 (属性方法构造方法 )对象对象创建传递销毁面向对象的三大基本特性:封装、继承、多态 OOP AOP类是由客观事物经过大脑抽象而形成概念,是对一类事物的描述使用class 关键字来描述类类中有属性和方法:属性对应的是事物的静态特性(可以叫做成员变量)方法对应的是事物的动态特性对象:是类的一个具体的实例化创建对象对象的方法:类名对象名= new 类名(); 调用类的构造方法来创建对象构造方法是特殊的方法:方法名=类名注意: 类中属性和方法必须在创建对象之后才能使用对象.属性对象.方法.表示引用第二天课程 (2012-7-11)JAVA语言描述类的声明语法格式:[< modifiers>] class < class_name> {[<attribute_declarations>][<constructor_declarations>][<method_declarations>]}修饰词class类名{属性定义部分<可选>构造方法 <可选>普通方法 <可选>}用于修饰class的关键字有两种:(1) public 公共的 (2)缺省不写表示当前类只能在同一个包中使用注意点:(1)一个java文件中最多只能有一个类被public 修饰,并且要求使用public修饰这个类的类名来作为该java文件的文件名。
(2)要求将来大家写代码的时候一个java文件一个类,并且该类用public修饰,类名与文件名相同类名 //规范一:类名要求首字母大写使用名词性词组(不能使用关键字)//要求编写代码统一对齐,要求整个java类中采用统一的缩进方式(2,4)声明属性:[<modifiers>] type < attr_name> [=defaultValue] ;修饰词数据类型属性名称[=默认初值];属性的修饰词四种: public公共的private 私有的default(默认) protected受保护的数据类型主要分成两大类:基本数据类型: 整型浮点型布尔型字符型引用数据类型:属性名称命名规范:要求首字母小写,从第二单词开始的首字母大写一般使用名词性词组方法的声明:[< modifiers>] <return_type> <name>([< argu_list>]) {[< statements>]Return ;}修饰词返回值类型方法名称(参数列表…){语句块;}方法的修饰词四种: public 公共的private 私有的 default(默认) protected受保护的返回值类型主要分成两大类 :基本数据类型:整型浮点型布尔型字符型引用数据类型:注意: (1) 如果没有返回值的话则使用void来声明(2) 方法的返回值只有一个方法名称命名规范:要求首字母小写,从第二单词开始的首字母大写一般使动词性词组注:在一个java类中允许出现多个同名的方法,但要求形参列表必须不一致(指的是参数的个数或参数的类型不一致)形参列表:数据类型1 参数名称1, 数据类型2 参数名称2,数据类型3参数名称3,…备注:JDK1.5之后java语言支持可变参数列表重点 :构造方法: 是一类特殊的方法功能:创建其所属类型的一个新的对象。
[< modifiers>] <class_name>([< argu_list>]) {ﻩ[< statements>]}修饰词类名(形参列表){语句块;}特殊点: (1)构造方法可以用于创建对象,可以直接使用,不需要通过对象来调用。
(2)在构造方法中需要完成对属性的初始化赋值。
(3)在一个类允许出现多个构造方法(4)每个类必须至少拥有一个构造方法该规则由JVM来保证:<a> 如果你编写的类没有写构造方法的话,则在该java文件编译的时候由编译器自动的为该类添加一个空的方法体的构造方法<b>如果你编写的类自带了构造方法的话,则在编译的时候,编译器不会再为你添加任何的构造方法实战开发建议: (1)当前类中如果没有构造方法的话,你就不要管了,如果写了构造方法的话,则要求把空的方法体的构造方法手动加上。
(2) 类体中书写规范属性构造方法关于属性的操作方法放在前面普通信息的封装和隐藏使用private 关键来修饰属性或方法以达到隐藏属性或方法的目的;注:private修饰的属性和方法只能在当前类中使用,其他所有的类都不能访问实际开发过程中类的属性要求全部使用private来修饰,同时必须要暴露一组public公共的方法来进行操作封装暴露一组public公共的方法对本类的私有属性进行操作的过程。
作业: (1) 第2章PPT中的练习(3)在昨天编写的类的基础上,使用封装和隐藏去进一步完善第三天课程(2012-7-12)Java 基础语法注释: 三种 // /**/ /** */标识符: 关键字不能做标识符由字母、数字、_、$ 组成 ,不能以数字开头$开头的一般表示为内嵌也可以表示成临时数据类型:基本类型整型 :byte 8 short 16int32 long 64 默认int浮点型: float 32 double 64 默认double float f = 3.14f;字符型: char关于字符的概念字符编码:ASCII编码 Unicode编码字符集:采用相同编码形式存放的字符的集合。
常用的字符集:中文GB2312 GBKGB18030拉丁italicUtf-8字符集ISO-8859-1常用转义字符: \n 换行 \r回车\t tab键 \\ \” \’布尔型: Boolean两种值true false引用类型作业: (1)引用类型的用法例子,去测试一把(2) 将值传递的例子测试(3)标准输入/输出自己完成对象构造和初始化注:类中的成员变量初始化由三步:(1)根据数据类型进行默认值的初始化要求掌握8种基本类及引用类型的默认值(2)根据default后的值来赋值,如果类的属性没有default值的话,则跳过该步骤(3)根据构造方法来赋值,如果没有构造方法的话,则跳过方法:类的动态属性类中方法存放在JVM内部的全局代码区注:(1)方法通常通过对象来调用,调用时必须注意实参列表与形参列表的个数、顺序、类型都必须一致。
(2)每个方法最后都会有return语句。
<1>如果该方法定义了返回值类型,则在方法体中肯定有return 语句,不能缺省,并且return返回的数据类型与返回值类型必须一致。
<2> 用void修饰的不需要返回值类型的方法,在JVM编译的时候自动会添加return;语句,所以不要自己写return 。
<3>特殊的构造方法,默认返回的就是本身的对象,所以也不需要写return语句,由jvm自动处理.变量局部变量: 写在方法或语句块内部的变量方法的形参作为局部变量来看待。
注: 要使用的话,必须要先声明和赋初值之后才能使用形参除外,原因在形参在方法被调用时也会根据传递进来的实参进行默认的初始化赋值成员变量: 也叫类的属性写在类的内部 ,在方法的外部的变量只要声明后就可以使用 ,原因在于成员变量在对象创建的时候会根据数据类型进行自动默认初始化赋值。
变量的作用范围:解决重名问题的规则:就近原则第四天课程 (2012-7-13)输入与输入Scanner 类的用法了解System.out.println() 用于向控制台输出任意类型的数据以后该语句只允许出现main()方法中。
在实际中主要用于调试System.out.printf(“%10.2f”,) //了解关键字this 重点有四种用法(1) 调用类的属性this.属性在构造方法中使用,给类的属性赋值,解决命名冲突问题。
(2)调用类的普通方法this.方法名()(3)调用构造方法this(参数列表..)注意: (1) this()该语句必须放在构造方法的第一条指令。
(2) 使用this()来调用构造方法的话,在本类中必须至少有一个不包含th is调用的构造方法作为退出构造来使用(4) 表示当前对象 this ===运算符:Infinity在java语言中表示无穷大-NaN表示notanumber不是一个数字负数的二进制->负十进制的转换(1)-1 (2)取反(3)转换为十进制 (4)*-1负十进制的转换- > 负数的二进制(1)取绝对值(2)转为二进制(3)取反(4)+1作业: 八种基本类型的数据之间的转换第五天课程(2012-7-16)分支语句单路分支: if(条件){语句块}双路分支 : if(条件1){语句块1}else{语句块2}多路分支 : if (条件1){语句块1}else if (条件2)语句块2}else if(条件3){语句块3}else{语句块4}Switch(){Case :Break;Case :}题目:(1)接收键盘输入的学生的成绩输出该成绩所属的等级90~100 优秀 80~90 良 70~80中等 60~70及格 <60 不及格(2)接收键盘输入的三个数字,输出其中的最大值要求求三个数的最大值要编写一个方法(3)接收键盘输入的数字0星期日~ 6星期六输出对应的星期几(4)接收键盘输入的年份,输出是否为闰年要求专门编写一个方法来判断是否为闰年(5)接收键盘输入的年份和月份,输出该月有多少天循环语句For(初始化部分;循环条件部分 ; 迭代部分){循环体部分;}素数 : 除1和它本身之外,不能被其他任何数整除备注: 一般情况下循环最多只能使用两层嵌套重点: break; continue;Break标签名;指的是跳出标签名所指向的那一层循环题目:(1)求1~10的积(2)打印如下乘法口诀表1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9….1*9=9…. 9*9=81(3) 输出200~300之间的素数,要求每8个一行 (注:不允许使用continue 标签)(4)从键盘循环接收数据,求输入数据的和当接收到Y字符时退出退出时输出累计的和(6)打印出一个指定层数的菱形(6)打印出一个指定层数的空心菱形(思考题)第六天课程(2012-7-17)作业:编写程序,采用适当的循环和流控制语句实现下述功能:打印输出0~200之间能被7整除但不能被4整除的所有整数;要求每行显示6ﻩ个数据;递归:必须满足的两个条件:1、递推公式2、终止条件正态分布数组:熟练一维数组的定义、创建、赋值、取值、遍历、修改掌握二维数组了解多维数组数组中的每个元素相当于该对象的成员变量,也就意味着,数组创建的时候,每一个值首先会根据数据类型赋初值。