教程:<Java基础教程> 《第一部分:JAVA基础程序设计》 页数 499
笔记:张永辉
第一章 认识JAVA
1 Java 是 Sun 公司推出的新一代面向对象程序设计语言,特别适于 Internet 应用程序开发,他与平台无关。
2 关键特性:
1.简洁有效
2.可移植性
3.面向对象
4.解释型
5.适合分布式计算
6.拥有较好的性能
7.健壮、防患于未然
8.具有多线程处理能力
9.具有较高的安全性
10.是一种动态语言
11.是一种中性结构
3 Java 虚拟机(JVM): 使得“一次编写,处处运行”等待得以实现
4 Java的架构包括以下三个方面
J2EE (Java 2 Platform Enterprise Edition) 企业版
J2SE (Java 2 Platform Stand Edition) 标准版
J2ME (Java 2 Platform Micro Edition) 小型版
5 JDK 的安装及环境变量的配置
1 下载开发环境 jdk-6u27-windows-i586.exe 版本是1.6.27 即是Java Development Kit。
2 双击安装
3 在编译时要用Javac Java 这2个命令需要配置好环境变量,使得可以在任何目录下使用这两个命令。
我的电脑击右->属性—>高级—>环境变量
编辑 JAVA_HOME 值 D:\ProgramFiles\Java\jdk1.6.0_27
系统变量 path后加 D:\ProgramFiles\Java\jdk1.6.0_27\bin; 环境变量即设置好了
6 第一个JAVA程序
1 在任意目录新建文件 cmd.bat 内容:c:\Windows\system32\cmd.exe 目的是开启命令窗口
2 创建文件 Hello.java 内容如下
public class Hello
{
//是程序的起点,所有程序由此开始运行
public static void main(String args[])
{
//此语句表示向屏幕上打印"Hello World !"字符串
System.out.println("Hello World !");
}
}
3 双击 cmd.bat 执行以下命令
javac hello.java 执行完毕会生成hello.class文件
java Hello 此句会输出 “Hello World !” 了, 大功告成!
7 classpath
假设使用开始->运行启动窗口,可以按以下进行执行程序
set classpath=D:\ProgramFiles 它指定java类的执行路径 (hello.class所在路径)
java Hello 此句执行成功
注意; 一般的 set classpath=. 即当前目录。
第二章 简单JAVA程序
1 示例程序 Test.java
public class Test
{
public static void main(String args[])
{
int num ; // 声明一个整型变量 num
num = 3 ; // 将整型变量赋值为 3
// 输出字符串,这里用"+" 号连接变量
System.out.println("这是数字 "+num);
System.out.println("我有 "+num+" 本书!");
//System.out 是指标准输出,
//println,是由 print 与line 所组成的. 使用System.out.print则不换行
} //{}形成一个程序段(segment)或是块(block)。
}
1 一个文件中只有一个public类,且与文件名相同。非public类可以有多个, 若无public类,文件可以随意命名。
2 main() method 在一个 Java 程序中有且只能有一个 main()方法. 必须使用关键字public static void
2 有以下关键字
abstract boolean break byte case catch
char class continue default do double
else extend false final finally float
for if implement import instanceof int
interface long native new null package
private protected public return short static
synchronized super this throw throws transient
true try void volatile while
第三章 变量与数据类型
1 数据类型
/ 整数 byte:1 short:2 int:4 long:8
/ 数值类型 - 浮点类型 float:4 double:8
/基本类型 - 字符类型 char:2
/ \ 布尔 boolean:1
数据类型
\ / 类 class
\引用类型 - 接口 interface
\ 数组 []
1 默认常数是int ,long型要如此写才不会编译错误 long num = 900000000000L;
2 最值的获取:
long long_max = java.lang.Long.MAX_VALUE ; //得到长整型的最大值
int int_max = java.lang.Integer.MAX_VALUE ; //得到整型的最大值
short short_max = Short.MAX_VALUE ; //得到短整型的最大值
byte byte_max = Byte.MAX_VALUE ; //得到Byte型的最大值
3 最大值+1后变成最小值,即出现溢出了。
4 字符型占2字节,JAVA使用Unicode码表示,可以按以下方式赋值:
char ch1 = 97 ;
char ch2 = 'a' ;
5 浮点类型默认是double的,可以如下赋值
float num = 3.0f ;
double nn = 3.3;
double mm = 1.7e10;
6 最值
java.lang.Float.MIN_VALUE
java.lang.Double.MAX_VALUE
7 bool 只能是true false
8 自动类型转换,需要符合以下2条
1 转换前的数据类型与转换后的类型兼容。
2 转换后的数据类型的表示范围比转换前的类型大
9 强制类型转换:在转换时会丢失精确度,此就必须要做强制性的转换。
1 占用字节较少的类型转换成占用字节较多的类型。
2 字符类型会转换成int类型。
3 int 类型会转换成float 类型。
4 表达式中若某个操作数的类型为 double,则另一个操作数字也会转换成 double类型。
5 布尔类型不能转换成其它类型。
2 表达式
1 符号
= + - * / % ! ~(取补码) ++ --
2 关系运算符
> < = <= >= == != ?:
3 逻辑 && ||
4 优先级 使用()
3 循环与选择语句
1 一般来说程序的结构包含有下面三种:
1 顺序结构
2 选择结构
3 循环结构
2 if if...else.. if..else if .. else if .. else
3 switch (表达式)
{
case xxx:xxx; break;
...
[default: xxx ;]
}
4 while(){} do{}while() [break continue]
5 for(;;){} [break continue]
第4章 数字与方法
1 一数组
int a[] ; // 声明整型数组 score
a = new int[4]; // 为整型数组 score 分配内存空间,其元素个数为 4
或者写为:都行
int a[] = new int[4];
int[] a = {1,2,3,4};
2 一维数组的方法
1 score.length 可取得长度。
2 Arrays.sort(a); // 数组的排序方法:从小打大 ,库java.util。
3 多维数组
int a[][] ;
a = new int[4][3] ;
或
int a[][] = new int[4][3] ;
int[][] a = {{}{}{}};
4 多维数组的方法
a[n].length
Arrays.sort(a[n])
5 方法 (即函数)
1 方法有 参数和返回值。
2 方法可以重载:方法名相同,只要参数类型或个数不同即可。
3 方法的参数是数组时,可以理解为指针。(因为在方法中可以改变原来的值)
4 可以返回数组,返回在方法中new的数组,还可以使用(试验)(空间还没释放,与C不也一样)。
第二部分: 面向对象程序设
第5章 类的基本形式
1 类 具有共同性质的事物的集合就称为类。
1 组成:类名+成员变量(属性)+方法
2 三个特征:
1 封装 一是指把对象的属性和行为看成一个整体,二是指给变量及方法规定了不同级别的访问权限
2 继承 派生类继承超类(父类)的所有成员,并增加新成员。
3 多态 方法重载与成员覆盖两种形式的多态
3 类与对象
类是对某一类事物的抽象,对象是该类事物的个体,因而也称实例(Instance)
2 类的声明及创建对象
1 声明的格式如下
class 类名称
{
[属性限定] 数据类型 属性;
[方法限定] 返回值类型 方法名(参数)
{
程序语句; //定义方法的内容
return 表达式;
}
}
eg
class Person
{
String name ;
int age ;
void talk()
{
System.out.println("我是+"name","+age+"岁");
}
}
2 创建对象
Person p ; // 声明
p = new Person() ; // 用new关键字实例化
或者:
Person p = new Person() ; // 声明对象并直接实例化
声 明: p在栈空间
实例化: 在堆开辟空间存放p的内容,并将引用给声明p
3 属性限定
关键字 解释 用于 作用
private 私有的 属性/方法 只能在其类的内部被调用, 否则编译错误
public 共有的 属性/方法 外部可见
4 get 与 set
按标准通常使用setXxx()/getXxx()对private属性进行封装
eg
void setAge(int Age)
{
age = Age;
}
引用数据类型的传递()
6 匿名对象
此对象没有名字,引用一次后被垃圾站回收
eg
System.out.println(new Person().talk());
7 构造函数(方法)
------------------------------
8 使用this调用构造方法
eg class Persion
{
static int year = 2014;
Persion()
{
System.out.println("1.Persion():"+year);
}
Persion(String name)
{
//this只能放在构造方法的第一行
this(); //此处调用了: Persion()
System.out.println("2.Persion(string)");
}
void tallk()
{
//此处不能有this()
System.out.println("no name");
}
}
9 static 静态变量
static 属性是所有对象共享的, 可以如下使用上面的例子
Persion aa = new Persion("zyhui");
Persion bb = new Persion("zyhui2");
bb.year = 2015; //aa.year 也被更改了
//也可以如下更改,
Persion.year = 2014; //static变量 也叫做类变量
扩展: 可以使用 static 来计数产生了多少个实例。 或者类之间的数据交换
eg
class Persion
{
int age;
static int year = 2014;
static int cnt = 0;
static String cityy = "Chengdu";
String name;
Persion(String name)
{
//1 使用静态 cnt 计数实例个数
System.out.println("number = " + cnt++);
this.name = name;
}
void tallk()
{ //2 非静态方法可以引用静态变量。
System.out.println(name + " say: year is " + year);
}
static void city()
{
//3 静态方法 只能引用静态变量 下面这句会报错(name是非静态的)。
//System.out.println(name + " say :i am at " + cityy);
System.out.println( " this:i am at " + cityy);
}
}