Java-对象和类
1.对象概念简述
- 对象: 代表现实世界中可以明确标识的一个实体. eg.一个学生,一张桌子,一个圆...
- 对象的状态(state, 特征, 属性): 由数据域及其当前值来表示,由变量定义.
- 对象的行为(behavior, 动作): 由方法定义.
eg.圆类:
1:数据域
2~3:构造方法
4~5:方法
class Circle{
double radius = 1; //1
Circle(){} //2
Circle(double newRadius){
radius = newRadius; //3
}
double getArea{...;} //4
double getPerimeter(){...} //5
}
2.构造方法构造对象
构造方法时一种特殊的方法,如下:
- 构造方法必须和所在类名字相同
- 构造方法没有返回值类型(包括void)
- 构造方法是在创建一个对象时由new操作符调用的
- 其作用为初始化对象
- 通常,类自己会提供一个无参构造方法(用户自己没有定义时)
3.通过引用变量访问对象
3.1概述
类是一种引用类型,该类类型变量都可以引用该类的一个实例.
eg.
ClassName obj = new ClassName();
- ClassName obj: 声明了变量obj的类型是ClassName
- obj = new ClassName():创建一个ClassName对象,并将其引用赋给obj
3.2引用数据域和null值
类中数据域也可能为引用类型,若引用类型的数据域未引用任何对象,其默认为null.
- 异常NullPointerException: 为调用值为null的引用变量时产生的异常
3.3基本类型变量与引用类型变量的区别
- 基本类型变量: 在内存中存储的是一个基本类型值
- 引用类型变量: 存储的是一个引用,其指向对象在内存中的位置
4.静态变量,常量和方法
- 修饰符: static
- 静态变量被类中的所有对共享(值存储于一个公共的内存地址)
- 静态方法不能访问类中的实例成员(实例数据域/实例方法)
- 静态常量(不变的静态值)应用final static修饰
- 静态变量val既可用ClassName.val表示也可用obj.val表示.前者更准确
5.可见性修饰符
- 可见性修饰符可以用于确定一个类及其成员的可见性
- 可用于类,方法,数据域
- 默认情况为可被同一个包内的任何类访问(package-private/package-access)
- private: 限定方法和数据域只可在自己的类中被访问(只可用在类的成员上)
- public: 可被任何其他的类访问(可用在类以及类的成员上)
- protected: 可被本类,本包内类以及继承类访问.
6.数据域封装
- 用private来修饰数据域将其声明为私有
- 此时若需要对数据域进行访问,可通过提供方法来实现
- 获取数据域的值:访问器; 修改数据域的值:修改器
从现在开始,除非特别原因或是另外指定,否则-
所有的数据域都应该被声明为私有,
所有构造方法和方法都应该被声明为公共的.
7.对象数组
同基本数据类型一样,数组也可以存储对象(类)
eg.
ClassName[] obj = new ClassName[];
//初始化:
obj[i] = new ClassName();
//初始化后的obj[i]默认为null
8.this引用
- 关键字this引用对象自身.
- 它也可以在构造方法内部用于调用同一个类的其他构造方法
- 引用被隐藏的数据域/调用一个重载的构造方法时不可省
- 调用重载构造方法时this必须在方法内第一个出现

浙公网安备 33010602011771号