- package test;
- public class CircleTest {
- public static void main(String[] args) {
- Circle c1=new Circle(6);
- System.out.println(c1);
- Circle c2=new Circle(4);
- System.out.println(c2);
- /*c1,c2都是Circle对象
- * Circle compare(Circle cir)方法是 Circle对象
- * 内部的方法,也就是 c1,c2都有这个函数,谁调用这个函数,
- * 这个函数中的this.指的就是谁,cir 就是compare()
- * 括号中的那个.
- *
- * 而且,调用这个函数后,有一个结果返回来,数据类型还是
- * 函数中声明的Circle 型,也就是说,返回的要么是调用者
- * 本身,要么是参数.
- * 这里打印的是Circle对象的地址值,如果想要其他效果可以
- * 重写toStrint()方法.这里不演示
- * */
- System.out.println(c1.compare(c2));//c1调用了 Circle compare(Circle cir)方法
- System.out.println(c1.compare(c2).radius); //这里打印了Circle对象中的变量值
-
- }
-
- }
-
- class Circle {
-
- int a;
- int radius;
-
- Circle(int r ){
-
- radius=r;
-
- }
-
- public Circle compare(Circle cir) {
- /*
- * 函数的定义格式,权限public+返回值类型Circle+函数名compare(参数类型),
- * 这里和同类比,所以是Circle 类型
- * 这里的意思是 用这个函数和一个Circle对象比完后,返回一个Circle对象.
- * */
- if (this.radius > cir.radius)
- return this;/*
- 没有带大括号的判断语句,表示条件成立只执行上面一句,否则执行下面一句
- *这里this.是指函数调用者
- *下面cir表示从参数列表传进来和函数调用者比的那个 Circle类型的对象
- */
- return cir;
- }
-
- }
-
-
复制代码 /*
compare 函数是Circle 内部的方法,所以谁调用 compare():this指的就是谁
*/
|