关键词:Oak、Sun公司、Oracle公司
Java出现于1995年
①简单性;②面向对象;③分布性;④健壮性;⑤安全性;⑥体系结构中立;⑦可移植性;⑧解释型语言;⑨高效性;⑩多线程机制;11动态性
Java三大平台



Java Application,即Java应⽤程序,是⽤Java语⾔编写的通过独⽴的Java解释器来解释运⾏的完整的桌⾯应⽤程序,可⽤字符界⾯和图形界⾯进⾏显⽰输出,代码中必须包含main()⽅法作为程序运⾏的⼊⼝。
package 语句(0或1句),
import 语句(≥0),导入其他类的类库,
类定义——class(≥1),
一个文件只能有一个public类(与文件同名)


public class & class
数据类型、关键字和标识符、常量与变量、数据类型转换、运算符与表达式
数值型数据的转换:byte→short→int→long→float→double。
字符型转换为整型:char→int。
以上数据类型的转换遵循从左到右的转换顺序,最终转换成表达式中表示范围最大的变量的数据类型。
String MyNumber = "1234.56";
float MyFloat = Float.parseFloat(MyNumber);
s = s + Integer.parseInt(data[i]);
int MyInt = 1234; //定义整形变量MyInt
String MyString = "" + MyInt; //将整型数据转换成了字符串
易错题
给划线部分选择正确的答案:
____method(byte x, double y){
return (short)x/y*2;
} D.double
分支语句:if 、 if…else 、 if…else if 、 switch…case
循环语句: while do…while for
跳转语句: break continue
一维数组的声明、初始化、引用、增强for
int[ ] anArray; //声明
anArray = new int[10];//创建(为数组分配内存)
合并:
int[] anArray = new int[10];
for(ElementType element: arrayName){};
int[] num = {1,2,3,4,5,6};
for(int i: num){//i 是代表 num[i]
System.out.print(i);
}
二维数组的声明、初始化、引用、length的属性用法
int[][] arrayname = {{}, {}, {}};
arrayname.length 一维数组的个数
arrayname[i].length 第i行子数组的长度
字符串:length() split()、replace()、trim ()等方法
string.length()是用来求字符串的长度,返回值为字符串的长度。
string.trim()是用于删除字符串的头尾空白符(只有头和尾)
string.toCharArray()为将字符串转换为字符数组。
string.replace()为将原string 中的元素或子串替换。返回替换后的string。
String replaceStr = str.replace('a', 'b');
string.split():分割字符串
String s1 = "a,b,c";
String[] _s1 = s1.split(",");
System.out.print("s1调用split方法后的结果为:");
for (String s : _s1) {
System.out.print("\"" + s + "\"" + "\t");
}
toString()返回该对象的字符串表示(object类)
类是把事物的数据与相关的功能封装在一起,形成的一种特殊结构,用以表达现实世界的一种抽象概念

字段(Field),是 Java编程语言中类的一个成员,主要用来存储对象的状态(如同某些编程语言中的变量),所以有时也可称为成员字段或成员变量。
在类中有下列几种变量(Variable):
类中的成员变量,称为字段。
代码块中的变量,称为局部变量。
方法和构造方法声明中的变量,称为参数。
局部变量和参数始终被归类为“变量”(而不是“字段”)。
封装是指把变量和方法包装在一个类内,以限定成员的访问,从而达到保护数据的一种技术。
封装字段是重构代码的一种操作,是通过一对存取方法来访问字段。存取方法也称为读/写方法或
getter和setter方法。
JAVA把数据成员称为成员变量,把函数成员称为成员方法,成员方法简称方法
重载是实现多态的一种方法,在面向对象的程序设计语言中,有一些方法的含义相同,但带有不同的参数,这些方法使用相同的名字,这就叫方法的重载。
名称相同、参数的列表必须不同(参数个数不同、或参数类型不同、或参数顺序不同)
作用(初始化对象):在对象被创建时初始化对象成员的方法。
定义(和类名相同,没有返回值),不用void修饰
默认构造方法 :编译系统自动生成
构造方法重载:可以让用户用不同的参数来创建对象
构造方法调用另一个构造方法
通过this()语句实现
例子:
public Cylinder() {
this(2.5, 5, "红色");//必须写在构造方法内第一行位置
System.out.println("lyh");
}
public Cylinder() {
System.out.println("LYH");
radius = r;
height = h;
color = str;
}
静态成员
static称为静态修饰符,被他修饰的成员称为静态成员,也被成为类成员,不用static修饰的成员称为实例成员。
静态初始化器
更好的初始化静态域的方法是静态初始化器。静态初始化器也是一个方法,但是它没有方法名。当静态初始化器所在类第一次被使用时,静态初始化器首先被调用,而且仅此一次而已,以后不管这个类被使用多少次,静态初始化器都不会再被调用,
静态初始化器定义形式是:
static {
//静态域初始化语句
}
静态变量(类变量)(类似全局变量):独立与方法之外
静态方法:
① 不被任何一个对象所专有;
② 他只能访问类变量,或调用staitic成员方法,静态方法中不能访问实例变量和实例方法。
③ 不能使用this或super
对象的应用
类类型的变量作为方法参数或返回值
对象数组作为参数
匿名对象
匿名就是没有名字的对象,在创建对象时,只通过new的动作在堆内存开辟空间,却没有把堆内存空间的地址值赋值给栈内存的某个变量用以存储
//正常对象
Student lyh = new Student();
//匿名对象:
new Student()
class SubClass extends SuperClass {
...
}
覆盖与重载类似,不同之处是名称、参数列表均与父类完全相同的方法名,用以重写父类中同名方法的功能。
在Java中有方法的重写,没有属性/字段的重写,准确的来说,是隐藏字段代替了重写。
构造方法 super用法
①访问父类的构造方法;
②访问父类的成员变量(super.变量名)和成员方法(super.方法名);
③但不能访问在子类添加的成员;
④不能访问父类private成员,protected即可
Final类 不可被继承
Object是所有类的根类
抽象类:创建专门的类作为父类 abstrct
可参考继承和多态练习
接口:可以实现多重继承 interface
亦可参考继承和多态练习
[public]interface 接口名称 [extends 父接口名称名列表] {
[public][static][final] 数据类型 成员变量名 = 变量;
[public][abstract] 返回值的数据类型 方法名(参数表);
[public] static 返回值的数据类型 方法名(参数表){
方法体;
}
[public] default 返回值的数据类型 方法名(参数表){
方法体;
}
}
例题点击
Throwable
try...catch(try后面可以跟多个catch来处理try块里面生成的异常事件)try...finally try...catch...finallythrow (直接抛)throws(间接抛) try {
...
} catch(Exceptionl e1) {
...
} catch(Exception2 e2) {
...
} finally {
...
}
finally 是强制性语句,不管有没有异常,不关try语句块是否含有break\return\throw,都要执行
异常中的finally一定会执行,哪怕一个方法中有return语句,也是在异常处理后才返回
异常处理后,程序继续执行
import java.util.Scanner;—— Scanner sc = new Scanner(System.in)、sc.next()、sc.nextInt()、sc.nextDouble()int x=-3; int y=-10; System.out.println(y%x); A. -1
定义一个Circle类,包含一个常量PI=3.14,一个私有属性r,一个公共构造方法和一个公共计算面积的方法getarea();
定义一个圆柱体Cylinder类,继承自Circle类,包含1个私有属性height,一个公共构造函数方法和一个公共计算体积volume的方法;
编写一个测试类Test,从键盘接受圆柱体的半径和高,并输出底面积和体积。
import java.util.*;
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
double r=sc.nextDouble();
double h=sc.nextDouble();
Cylinder cy=new Cylinder(r,h);
double s=cy.getArea();
double v=cy.volume();
System.out.println("s="+s+";v="+v);
}
}
class Circle{
final double PI=3.14;
private double r;
Circle(double R){
this.r=R;
}
double getArea() {
return PI*r*r;
}
}
class Cylinder extends Circle{
private double height;
Cylinder(double R,double height) {
super(R);
this.height=height;
// TODO Auto-generated constructor stub
}
double volume() {
return getArea()*height;
}
}