例一: Boy类有姓名和女朋友的属性,有亲吻的行为
public class Boy {
public String name;//姓名
public Girl myGirl;//has a关系(Girl是引用数据类型)
// public void kiss(Girl myGirl){//use a关系(传一个Girl类型的形参)
public void kiss(){
System.out.println("亲爱的"+myGirl.name+",让我亲一个嘛");
myGirl.response();
}
}
Girl类有属性姓名,做出相应的反应行为
public class Girl {
public String name;
public void response(){
System.out.println("嗯~~~~好讨厌哦~~~");
}
}
main方法中测试
Boy wxb = new Boy(); //产生一个Boy对象
Girl shuangEr = new Girl(); //产生一个Girl对象
shuangEr.name = “双儿”; //当设置对象的属性时,需要该对象的变量名加点的方式去调该类public的属性
wxb.myGirl = shuangEr; //必须给男孩对象的女朋友属性附一个女孩对象,不然男孩kiss时myGirl.response()会报NullPointerException(空指针异常)。
wxb.kiss(); //对象的变量名调public的方法
最后控制台输出:
亲爱的双儿,让我亲一个嘛~~ ~~好讨厌哦~~~
嗯
例二:Student类(属性、构造器、行为)
//class是关键字,表明定义一个类
//public是访问修饰符,代表在哪里可以访问使用这个类
//细节:如果一个类是public的,那么类名必须和java文件名保持一致;
// 一个类一篇class文件,class文件的名字只和类名相关
public class Student {
//属性—会被自动初始化、基本数据类型为0,引用数据类型为null
private String name;//变量属性是私有的,并提供符合命名规范的get/set方法
private int age = 18;
private int score;
public final String CLASS_NAME = "J134";//常量属性final修饰,变量名大写下划线分隔
//构造方法--(必须要有公共无参构造)-作用:产生对象
//语法:1、方法名必须与类名保持一致;2、构造方法没有返回类型;
//构造方法的执行步骤:1、划分空间;2、在该空间划分属性;
// 3、对属性进行初始化;4、执行我们在构造方法里面书写的代码
//细节:1、如果一个类没有写构造,JVM会给它一个默认的公共无参构造
// 2、一旦开发人员书写了一个构造方法,不会提供默认构造了
public Student(String name, int age, int score) {
//this指代当前对象
this.name = name;
}
//行为
public void study(int num){
for(int i = 0; i < num; i++){
System.out.println(this.name + "说:Good Good Study,Day Day Up!");
}
}
//访问器(可以设置外部访问权限,例如加 if 条件)
public String getName() {
return name;
}
//修改器(可以设置外部修改有效性验证,例如加if条件)
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
}