1. 编译:将hello.java源程序--javac---》字节码文件.class--java-->结果文件
类 是Java存在的最小单元
2. 如果类是Public的,类名和文件名必须一致。一个Java源文件中可以包含多个类,但是文件名称必须与public修饰的类名一致。
3. 整型byte shortint常用long
Long比较特别long a=1234567890123456789L
4. 浮点floatdouble常用
double d=12.1234d后面的d可用可无
5. 字符char
6. 字符串string
7. 类对象 属性 方法
Teacher t = new Teacher();
声明Teacher类的引用变量t
使用引用变量引用对象
成员变量指类里面、方法外面的变量,会初始化;
方法内部变量:需要赋初值。
8. 栈Stack:存放临时定义变量
9. 堆Heap:New一个对象存放在堆里。
JVM将堆划分为垃圾回收区(New定义的对象)和永久区(编译后的Class)
内存分析:
JVM垃圾回收机制:内存中不再被引用的对象,会被JVM回收。
1. 访问控制修改符
类的属性和方法被如下修饰符修饰
| 本类 | 同一个包 | 子类 | 所有类 |
private | ü | | | |
default | ü | ü | | |
protected | ü | ü | ü | |
public | ü | ü | ü | ü |
2. 封装,也可以叫隐藏
private String name;
提供Private属性Public的GetSet方法,使用外部类通过调用方法访问
Public String getName(){
return name;
}
PublicvoidsetName(String name){
This.name= name;
}
Student s=new Student();
s.setName(“pp”);
3. This 关键字
区分属性还是局部变量
4. 构造器/构造方法
不仅用来构造对象(new student()),还用来初始化对象的属性值;
是一种特殊的方法;
没有返回值,名称与类名一致;
l 无参构造器
Public Student(){
Name=”yang”;
Id=8899;
Gender=”male”;
Weight=63.5;
}
Student s=new Student();
l 有参构造器
public Student(String name,int id,String gender,double weight){
this.name=name;
this.id=id;
this.gender=gender;
this.weight=weight;
}
Student s2 = new Student("杨",6677,"Female",69.99);
5. 重载构造器
ü 第一种方法
public Student(String name){
this.name=name;
}
public Student(String name,int id){
this.name=name;
this.id=id;
}
public Student(String name,int id,String gender){
this.name=name;
this.id=id;
this.gender=gender;
}
ü This方法进行构造方法重载
public Student(String name){
this(name,3333);//必须在构造方法的第一行,否则编译不通过
}
public Student(String name,int id){
this(name,id,"FF");
}
public Student(String name,int id,String gender){
this.name=name;
this.id=id;
this.gender=gender;
}
6. 基本数据类型-数组
char[] arr=new char[10];
简单数组赋值char[] arr={'a','b','c','d','e','f','i','j','k','L'};
增强性for循环for(数组类型 变量 : 数组名)
for(char c:arr){
System.out.printf(c+" ");
//System.out.println(c);
}
等同于for(int i=0;i<arr.length;i++)
7. 引用类型-数组初始化
1. Student[] stu2={new Student("zhangj",1103),new Student("CL",1104)};
2. Student[] stu1=new Student[2];
stu1[0]=new Student("qiyan",1001);
stu1[1]=new Student("laoyou",1102,"Male");
8. Static
测试static(类变量、类方法),静态方法只能使用静态变量;对象可以使用静态变量和非静态变量
使用静态变量和方法时,可以用类直接调用
Student.ss="cjx";
Student.printSs();
9. 继承
A. 提高代码复用性;抽象:抽出像的部分;
B. 重写override:在子类中,对父类方法定义一样,但实现内容不一样。在外部调用方法时,为重写后的方法
C. 所有的类都继承object类;
D. Super 当前类直接父类对象的引用
E. Final
final修饰的类不能被继承
final修饰的方法不能被重载
final修饰的变量是常量,不能重新赋值
10. 多态:多种形态
继承,方法重写,父类引用指向子类对象;
11. 抽象abstract
抽象方法必须包含于抽象类,抽象类可以包含非抽象方法;
抽象方法没有方法体;
抽象类不能被实例化,不能New;
子类必须实现父类抽象方法;
12. Interface
接口中只有常量和抽象方法
接口可以多继承