Java-对象和类

1.对象概念简述

  1. 对象: 代表现实世界中可以明确标识的一个实体. eg.一个学生,一张桌子,一个圆...
  2. 对象的状态(state, 特征, 属性): 由数据域及其当前值来表示,由变量定义.
  3. 对象的行为(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.构造方法构造对象

构造方法时一种特殊的方法,如下:

  1. 构造方法必须和所在类名字相同
  2. 构造方法没有返回值类型(包括void)
  3. 构造方法是在创建一个对象时由new操作符调用的
  4. 其作用为初始化对象
  5. 通常,类自己会提供一个无参构造方法(用户自己没有定义时)

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.静态变量,常量和方法

  1. 修饰符: static
  2. 静态变量被类中的所有对共享(值存储于一个公共的内存地址)
  3. 静态方法不能访问类中的实例成员(实例数据域/实例方法)
  4. 静态常量(不变的静态值)应用final static修饰
  5. 静态变量val既可用ClassName.val表示也可用obj.val表示.前者更准确

5.可见性修饰符

  1. 可见性修饰符可以用于确定一个类及其成员的可见性
  2. 可用于类,方法,数据域
  3. 默认情况为可被同一个包内的任何类访问(package-private/package-access)
  4. private: 限定方法和数据域只可在自己的类中被访问(只可用在类的成员上)
  5. public: 可被任何其他的类访问(可用在类以及类的成员上)
  6. protected: 可被本类,本包内类以及继承类访问.

6.数据域封装

  1. 用private来修饰数据域将其声明为私有
  2. 此时若需要对数据域进行访问,可通过提供方法来实现
  3. 获取数据域的值:访问器; 修改数据域的值:修改器

从现在开始,除非特别原因或是另外指定,否则-
所有的数据域都应该被声明为私有,
所有构造方法和方法都应该被声明为公共的.

7.对象数组

同基本数据类型一样,数组也可以存储对象(类)
eg.

ClassName[] obj = new ClassName[];
//初始化:
obj[i] = new ClassName();
//初始化后的obj[i]默认为null

8.this引用

  • 关键字this引用对象自身.
  • 它也可以在构造方法内部用于调用同一个类的其他构造方法
  • 引用被隐藏的数据域/调用一个重载的构造方法时不可省
  • 调用重载构造方法时this必须在方法内第一个出现
posted @ 2021-07-26 20:07  rttrti  阅读(141)  评论(0)    收藏  举报