创建对象
- 对象就是类的实例化。
- 如果把类比作模具,对象就是模具创造出来的东西。
- 对象是实际存在的,对象在内存中分配了空间。
创建对象的格式:
类名 对象名 = new 类名();
例子1:在同一个类中创建对象。
public class Person //新建一个类,类名的首字母要大写 //启动类
{
String name;
int age;
String sex;
String hobby;
//这个Person类中有4个属性。
void show() //定义一个show方法 也可以称作这个类的行为
{
System.out.printf("%d\n",age);
//这个show方法用来显示这个类中的age属性的值。
}
public static void main(String[] args)
{
//程序从这里开始运行。
Person aa = new Person();//这样就创建了一个以Person类为模型的名字为aa的对象。
/*
aa这个对象包括
Person类中4个属性和1个show方法
*/
//并且给aa中的四个属性和一个方法在内存中分配了空间。
//这样就可以对对象中的数据进行操作了。
}
}
例子2:在不同类中创建对象。
class A //这是一个名字为A的普通类。
{
String name;
int age;
String sex;
String hobby;
//这个A类中有4个属性。
void show() //定义一个show方法 也可以称作这个类的行为
{
System.out.printf("%d\n",age);
//这个show方法用来显示这个类中的age属性的值。
}
}//这个类到这里就没了
public class Test1 //这是名字为Test1的一个启动类
{
public static void main(String[] args)
{
A aa = new A();
//以A类为模型创建一个名字为aa的对象
/*
aa这个对象包括
Person类中4个属性和1个show方法
*/
//并且给aa中的四个属性和一个方法在内存中分配了空间。
//这样就可以对对象中的数据进行操作了。
}
}
既然我们已经创建了一个对象,那么我们就来看一看这个对象的内容是什么。到底什么是对象。
class Person //普通类
{
String name="张三";
int age=18;
String sex="男";
String hobby="睡觉";
public String toString()//重写一下toString方法,才能正常输出对象。这里可以先不用理解。
{
return "姓名:"+name
+"\r\n"+"年龄:"+age
+"\r\n"+"性别:"+sex
+"\r\n"+"兴趣:"+hobby;
//"\r\n"为换行
}
}//定义了一个Person类。并且给所有成员赋了值。
public class Test1//启动类
{
public static void main(String[] args)
{
Person aa = new Person();//创建一个名为aa的对象。
//第一步创建了一个对象。
System.out.println(aa);//输出aa对象。
// 姓名:张三
// 年龄:18
// 性别:男
// 兴趣:睡觉
Person bb = new Person()//我们又以Person为模型创建了一个名为bb的对象。
System.out.println(bb);//输出bb对象。
// 姓名:张三
// 年龄:18
// 性别:男
// 兴趣:睡觉
}
}
aa对象的内容和bb对象的内容是一样的。
就说明了,对象是以类为模板进行生成的,类是什么样,对象就是什么样。
接下来我们来改变对象中的值来生成两个不同的对象。
访问对象属性
通过对象名来访问对象的属性。
class A
{
public int i = 0 ; //设置A类里的属性 i;
public int j = 0;
}
class Test_1//启动类
{
public static void main(String[] args)
{
A aa = new A();//以A为模板创建一个对象 对象的名字为aa
System.out.printf("i=%d,j=%d\n",aa.i,aa.j);//打印aa中的i,aa中的.j的值。
//i=0 j=0; 因为你没有给它赋值,所以显示的是它的初始值
aa.i = 1;//访问对象aa中的i属性,并把1赋值给aa中的i
aa.j = 2;//访问对象aa中的j属性,并把2赋值给aa中的j
System.out.printf("i=%d,j=%d\n",aa.i,aa.j);//打印aa中的i,aa中的.j的值。
//i=1 j=2;
A bb = new A();//以A为模板创建一个对象 对象的名字为bb
System.out.printf("i=%d,j=%d\n",bb.i,bb.j);//打印bb中的i,bb中的.j的值。
//i=0 j=0; 因为你没有给它赋值,所以显示的是它的初始值
//说明了,修改aa中属性的值并不影响类中的属性。
bb.i = 10;//bb对象中i的值赋给它10
bb.j = 20;//bb对象中i的值赋给它20
System.out.printf("i=%d,j=%d\n",bb.i,bb.j);//打印bb中的i,bb中的.j的值。
//i=10 j=20;
//说明了可以通过对象名.属性的方法,对它进行操作。
}
}