一、类
一、类的定义
具有同种属性的对象称为类。定义了它所包含的全体对象的公共特征和功能,对象就是类的一个实例化。
类的三种常见成员:属性、方法、构造器
二、类的编写
1.类名的定义;
2.类属性(特性)的编写;属性 ( 成员变量 ) = 访问修饰符 + 数据类型 +变量名
//定义人类public class Person{ public String name; //名字(属性) public int age; //年龄(属性) public String sex; //性别(属性)}
3.类方法(行为)的编写。 方法 = 访问修饰符 + 返回值类型 +方法名 + 方法参数 + 方法体
public class Person{ public void study(){ //方法 System.out.println("Good good study, day day up!") }}
三、类的声明
类在使用前必须先声明然后才可以声明变量,创建对象
类声明语法如下:
[标识符] [修饰符] class 类名 { //类的属性(特性)-名词(只定义和业务逻辑相关的代码) //类的方法(行为)-动词(只定义和业务逻辑相关的代码)}
四、实例
public class Person { String name; int age; String sex; //定义一个学习方法 public void study(){ System.out.println("Good good study, day day up!"); } //显式编写一个空构造器 public Person() { System.out.println("Person 空构造器"); } //编写一个带参数的构造器 public Person(String name, int age, String sex) { this.name = name; //this.name代表Person中的属性name,= 后面的name代表构造器中的参数name this.age = age; this.sex = sex; } //方法重载 public Person(String name, int age) { this.name = name; this.age = age; } public static void main(String[] args) { Person p1 = new Person("二两客", 22,"Male"); System.out.println(p1.name +"" + p1.age +"" + p1.sex); p1.study(); Person p2 = new Person("椰椰", 22); System.out.println(p2.name +"" + p2.age); p2.study(); }}
二、对象
一、对象的定义
现实世界存在的任何事务都可以称之为对象。
二、对象的创建和使用
常见实例化对象的方式有四种:使用类创建对象(new)、cloae方法、反序列化、反射。
1.创建对象的格式:
类名 对象名 = new 类名([参数列表]);
Person person = new Person;
注:通过使用new运算符,一个类可以创建多个对象,每个对象被分配的不同的内存空间,改变一个对象的变量不会影响其它对象的变量。
每个类都有一个不带参数的默认构造方法,当通过new运算符调用默认构造方法创建对象时,系统会自动初始化所分配的内存空间。对于数值变量,赋初值0,对于布尔变量,赋初值false,对于引用变量,赋予一个特殊的值null。
2.给对象的属性赋值:
对象名.属性名
person.name ="二两客";person.age = 22;person.sex ="男";
3.调用对象的方法:
[ 返回值类型 名字 = ] 对象名.方法名(参数列表)
注: [ ]内容可省略。
person.study();
三、实例
public class Person { String name; int age; String sex; //定义一个学习方法 public void study(){ System.out.println("Good good study, day day up!"); }}
public class Test { public static void main(String[] args) { // 创建对象 Person person = new Person(); // 设置属性 person.name ="二两客"; person.age = 22; person.sex ="男"; //对属性进行提取 System.out.println(person.name); System.out.println(person.age); System.out.println(person.sex); // 调用方法 person.study(); }}
四、匿名对象
1.定义
匿名对象就是实例化没有名字的对象,指的是在创建一个对象时,只有创建的语句,却没有将其地址赋值给某个变量,
创建一个匿名对象:
//没有赋值给某个变量new Person();
2.适应场景
1.只调用一次对象的方法时
new Person().study();
2.作为方法的实际参数或返回值时
3.特点
匿名对象作为对象,也具有普通对象所有功能;
每一次使用匿名对象,都是new出的新对象;
匿名对象执行完毕后,由于没有其他引用,会被Java的垃圾回收机制判断为垃圾,进行自动回收。
五、对象的销毁
对象的销毁是指当对象使用完毕后,释放对象所占用的内存空间。
Java对象的销毁是采用垃圾回收机制(Garbage Collection ------GC),自动回收不再访问的对象。
- GC可以回收new 的对象,系统资源不能回收;
- GC回收对象不是马上回收,而是在空闲时回收;
- 调用System.GC(),不是立即回收程序员决定不了
java 程序员不需要关注Java对象的销毁,只需要关注Java对象的创建(或实例化)——GC的作用
Java对象被销毁后将不允许再访问该对象,这将导致运行时错误(或程序崩溃)。