通过一个类可以实例化N个对象
实例化对象的语法结构:new 类名();
new是java中的一个运算符,它的作用是创建对象
new运算符在堆内存开辟的内存空间称为对象 引用是一个变量,它保存了对象的内存地址
java语言中,程序员不可以直接操作堆内存,必须通过引用来操作堆内存中对象的实例变量 java语言中,没有指针
public class OOTest1{
public static void main(String[] args){
Student s =new Student();
/*定义一个对象 这里的Student属于引用数据类型 与String类似
new运算符的作用就是创建对象
new Student() 这个操作是创建一个对象,堆内存中将为这个对象开辟内存空间
s并不是一个对象 s是一个引用 s这个变量在栈内存中存储,s是一个局部变量
“=”将堆内存中对象的地址赋值给栈内存中的s
*/
int a = s.no;
int b = s.age;
String c = s.name;
String d = s.addr;
boolean e = s.sex;
/*
以上这里是对对象中的变量的访问
读取数据:引用.变量名 例如 s.no s.age 等等
*/
//以下将访问到的对象中的变量打印输出 因为没有赋初值 所以会输出默认值
System.out.println(a); // 0
System.out.println(b); // 0
System.out.println(c); // null
System.out.println(d); // null
System.out.println(e); // false
System.out.println("*******************************************************");
a=s.no=20187088;
b=s.age=21;
c=s.name="lele";
d=s.addr="河北秦皇岛";
e=s.sex=true;
/*
以上就是对对象中的变量进行修改 语法格式为 引用.变量名=值 例如 s.no=20187088;
*/
System.out.println(a); // 20187088
System.out.println(b); // 21
System.out.println(c); // lele
System.out.println(d); // 河北秦皇岛
System.out.println(e); // true
}
}
class Student{ //定义一个类 为整体学生的类
int no; // 定义学生的学号
int age; // 定义学生的年龄
String name; // 定义学生的名字
String addr; // 定义学生的地址
boolean sex; // 定义学生的性别
/*
以上为学生这个类的状态信息
no age name addr sex 这些变量不可以通过类直接进行访问
需要通过我们创建的对象来进行访问
这里的no age name sex addr这些变量是在类体中定义的
它们都属于成员变量,没有赋值的话,系统会给它们赋默认值
*/
}
public class OOTest2{
public static void main(String[] args){
user u=new user(); //定义一个user对象
int a = u.no;
String b = u.name;
address c = u.addr;
System.out.println(a); // 0
System.out.println(b); // null
System.out.println(c); // null
u.addr = new address(); //类中有类,需要先给里层的类创建一个对象
String d = u.addr.city;
System.out.println(d); //null
u.no = 20187088;
u.name = "lele";
u.addr.city = "河北";
u.addr.street = "张家口";
u.addr.zipcode = 76550;
System.out.println(u.no); //20187088
System.out.println(u.name); //lele
System.out.println(u.addr.city); // 河北
System.out.println(u.addr.street); //张家口
System.out.println(u.addr.zipcode); //76550
}
}
class user{ //定义一个user用户类
int no;
String name;
address addr; //在user类中引用地址类
}
class address{ //定义一个地址类
String city;
String street;
int zipcode;
}
关联的信息:
public class OOTest3{
public static void main(String[] args){
husband li = new husband();
wife hou = new wife();
li.w = hou; // 丈夫与妻子关联
hou.h = li; //妻子与丈夫关联
hou.name = "hhha";
System.out.println(li.w.name); //通过丈夫找到妻子
}
static class husband{ //定义一个丈夫类
String name;
wife w;
}
static class wife{ //定义一个妻子类
String name;
husband h;
}
}