2016.12.19-23周总结
本周主要知识整理归纳:
Java面向对象
1.栈和堆
Java数据都存储在堆栈中。 栈:存放基本数据类型,引用类型的引用。 特点:后进先出,运行速度快,占用空间小。 堆:存放引用类型以及其他数据。
2.类和对象
对象:生活中所有看得见摸得着的东西。万物皆对象。对象都有属性和行为(方法)。
书本、笔记本、电脑、房间等都是对象。
类:具有相同的属性和方法的一堆对象的抽象。 类是对象的抽象,对象是类的实例。 Java中类用关键字class声明,源代码中只能包含一个公用类(public)。
3.对象的引用和实例化
可以先引用,再实例化,也可以一次解决。
Student stu;
stu = new Student();
Student stu = new Student();
4.访问对象的属性和方法
Student stu = new Student();
stu.name = "张三";
stu.say();
5.this引用
每个对象可以使用this关键字引用它本身。
public void Student () {
System.out.print("this.name");
}
6.包
简单理解,相似于文件夹。 命名:域名倒置法。 基本用途:提供组织类的机制,为包中的类提供命名空间。
7.变量
成员变量(全局变量):在整个代码中都可以调用的变量。 局部变量:只能在本变量声明的函数内部调用。
Java面向对象2
1.构造器
构造器即类加载器(class loader),也称构造函数(能重载)。 程序默认提供,如果写了构造函数,将不默认提供。 构造函数可以加参数。 this(); 指向无参构造函数,必须写在第一行; this(name,age); 指向其他构造函数,必须写在第一行。 super(); 调用父类无参函数,必须写在第一行。 super(name);调用父类有参函数,必须写在第一行。 构造器名称与类名相同,不能声明返回值类型以及void。
2.重载与重写
重载发生在同一个类中,重写一定发生在父类与子类之间。 重载是方法名一样,但参数不同;重写必须一模一样。
3.运算符区别
==:引用类型:判断内存地址是否一样; 基础数据类型:判断值是否一样。 特例:字符串比较时,判断值是否一样(除非使用new关键字)。 判断值一般使用equals。
4.final
修饰常量; 修饰的方法不能重写,可以重载; 修饰的类不能被继承。
5.继承
子类(subClass),父类(基类,superClass); 子类拥有父类的一切方法和属性(不包括private修饰的); Java只能单继承,若一个类没有继承其他类,则其父类为object类。
6.is a 与 has a
“is-a”代表的是类之间的继承关系,比如PC机是计算机,工作站也是计算机。PC机和工作站是两种不同类型的计算机,但都继承了计算机的共同特性。因此在用Java语言实现时,应该将PC机和工作站定义成两种类,均继承计算机类。
“has -a”代表的是对象和它的成员的从属关系。同一种类的对象,通过它们的属性的不同值来区别。比如一台PC机的操作系统是Windows,另一台PC机的操作系统是Linux。操作系统是PC机的一个成员变量,根据这一成员变量的不同值,可以区分不同的PC机对象。
7.方法重写
子类的方法返回值类型、方法名和形式参数列表必须与父类相同。
8.super关键字
super关键字用于调用父类的构造器。如果构造器没有显式使用super关键字,那么编译器会自动添加一个无参数的super()来调用父类构造器。
浙公网安备 33010602011771号