类:类为对象定义属性和行为。
对象的定义:对象是代表现实世界可以明确标识的一个实体。
每个对象都有自己独特的标识、状态和行为。
一个对象的状态是由具体当前值的数据域来表示的。
一个对象的行为是由方法定义的。
数据域也就是变量。
有一种特殊的方法为构造方法,调用它可以创建一个新的对象。为了完成对象的初始化。
包含main方法的被称为主类
当程序运行时,每个类都会被加载为一个.class 文件
使用构造方法构造对象
构造方法的特殊性:
1.构造方法必须具备和所在类相同的名字。
2.构造贩卖噶发没有返回值类型,甚至连void也没有。
3.构造方法是在创建一个对象使用new操作符时调用的。
构造函数的作用是初始化对象。
通过引用变量访问对象
对象的数据和方法可以通过.通过对象的引用变量访问。新创建的对象在内存中被分配空间。
当方法被使用static修饰时,可以使用类名.方法名来实现。
如果一个引用变量是没有任何引用对象的,那么这个数据域就有一个特殊的java值null 它是一个直接量,true和false是Boolean的直接量。
引用类型的默认值是null,数据类型的数据域默认值为0,Boolean的数据域的默认值为false,char的默认值为'\u0000'
注意:java中对局部值是没默认值的。
基本数据类型和引用数据类型的区别
基本数据类型变量在内存中存储的是一个基本类型值,而引用类型变量存储的是一个引用,它是指对象在内存中的位置。
如果你以前的引用对象不再有用时,它将会被gc回收,这是自动的。
如果你认为不再需要某个对象时,可以显式地给该对象的引用变量賦 null 值。如 果该对象没有被任何引用变量所引用,Java 虚拟机将自动回收它所占的空间。
静态变量、常量和方法
静态变量被类中的所有对象所共享。而静态方法不能访问类中的实例成员。
我们知道new出来的对象存储在不同的内存空间中,它们各自若改变是相互不会影响的。
而如果是static的变量,有一个对象将之改变后,其他的对象调用的变量也改变了(static存在一个内存中)
可见性修饰符
可见性修饰符可以用于确定一个类以及它的成员的可见性。
public 在类、方法、数据域、前使用,可以表示它们可以被任何其他类访问。
没有可见修饰符 默认类、方法和数据域只能被同一个包里的任意类访问。 -----包私有。
private修饰符限定的是方法、数据域只能在它自己的类中被访问
注意:private只能运用在类的成员上,public可以运用在类和类的成员上,注意局部变量上使用时是错误的。
多数情况下,构造函数都是共有的,但也可以是私有的。(这时,这个类不能被实例化)但可直接类名调用 如:Math.pow();
数据域封装
一般将数据设为私有的,这是为了保护数据和维护。
向方法传递对象参数
给方法传递一个对象,是将对象的引用传递给方法。
对象数组
数组不但可以存基本数据类型,还可以存对象。
不可变对象和类
不可变对象的内容是不可改变的,而它的类就是不可变类。
一般而言,数据全部私有,和没有set方法(没有修改器)它就是不可变类,但是
任然不能保证它是一个不可变类。还要保证美誉一个返回指向可变数据域的引用访问器方法。
变量的作用域
实例变量和静态变量的作用域是整个类,无论变量在哪里声明的。
局部变量的声明和使用都在一个方法的内部.
— 个类的实例变量和静态变量称为类变量(class’s variables)或教据域(data field)。
this 引用
关键字 this 引用对象自身。它也可以在构造方法内部用于调用同一个类的其他构造方法。
关键字 this 是指向调用对象本身的引用名。可以用 this 关键字引用对象的实例成员。 例如,下面 a的代码使用 this 来显式地引用对象的 radius以及调用它的 getAreaO 方法。 this引用通常是省略掉的,如b所示。然而,在引用隐藏数据域以及调用一个重载的构造 方法的时候,this引用是必须的。
使用this引用隐藏数据域
this调用构造方法
1.this可以用于调用同一个类的另一个构造方法。