本章要点:
1、了解类和对象的相关概念
2、掌握声明和创建类和对象的方法
3、掌握对象的比较方法
1、理解面向对象程序设计:
1.2、面向对象编程要达到软件工程的三个主要指标:灵活性、重用性、扩展性
类->对象->属性、方法、构造方法、代码块
类的组成要素:
属性、方法(局部变量、成员变量)、构造方法、代码块(构造代码块、静态代码块)及各种修饰符(default,public、private、protected(3P)、static,final(SF)等)
2、面向对象的基本概念:
2.1将具有相同属性和相同行为的一组对象称为类;
2.2 对象是类的实例化后的产物;
2.3 类是某一类事物的描述,而对象是实际存在的该类事物的个体;
3、类的申明与定义:
(1)类的申明:
[访问修饰符] class 类名称{
//类的成员变量
//类的成员方法
}
访问修饰符:
public:公有的,本类、本包内的类,包外的类均可访问;
private:私有的,本类可以访问;
protected:介于public和private之间,和继承有关,本类、子类可以访问(子类在其它包中也可以访问)
默认模式:本类和本包内可以访问
final:不能被继承
类名称:只能以字母、数字、下划线和$组成,不能以数字开头,不能使用关键字。一般首字母大写。
(2)类的定义:
类的成员变量的定义:
访问修饰符 数据类型 属性[=值]
类的成员方法的定义:
访问修饰符 返回值的数据类型 方法名称(参数1,参数2,参数3...){
程序语句
}
4、类的属性:
语法:[访问修饰符] 属性类型 属性名[=默认值];
修饰符:public,private,protected,static,final其中之一,static和final可以组合起来使用。
属性类型:任何类型(基本数据类型和引用数据类型)
5、对象的申明与使用:
(1)对象的申明:
语法:类名 对象名 = new 类名([形参]);
(2)对象的使用:
调用属性的语法:对象名.属性名;
调用方法的语法:对象名.方法名([形参]);
(3)匿名对象:
指的是没有名字的对象。
使用场合:创建对象只使用了一次。
(4)对象的比较:
对于String字符串对象:
“==”:比较的是内存地址;
equals()方法:比较的是字符串内容。
对于其它引用类型:
equals()方法:默认比较的是两个对象的地址,实际比较时必须覆写。
(5)对象数组的使用:
class Person{
String name;
int age;
void say(){
System.out.println("my name is " + name + "my age is " + age);
}
}
public class Ex10_2 {
public static void main(String[] args){
Person[] persons = new Person[3];
persons[0] = new Person();
persons[1] = new Person();
persons[2] = new Person();
for(int i = 0; i<persons.length; i++){
System.out.println(persons[i]);
}
}
}
6、高手点拨:
(1)栈内存和堆内存的区别:
栈内存:
栈是由编译器自动分配和释放的;
存放基本数据类型的变量、指定代码、常量和对象的引用地址;
优点:存取速度快、数据可以共享;
缺点:存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。
堆内存:
堆是一个程序运行动态分配的内存区域;
存放构建对象时所需要的内存;
堆内存在使用完毕后,是由垃圾回收机制进行(隐式)回收;
优点:动态的分配内存大小;
缺点:存取速度慢。