• 继承关系的理解


        ji1是父类,ji2是子类

        输出内容如下:

      

       public class Ji1 {
    	public String name;
    	public int age;
    	public Ji1 () {
    		
    	}
    	public Ji1( String name) {
    		this.name = name;
    		
    		
    	}
    	public Ji1( int age) {
    		this.age = age;
    		
    		
    	}
    	public void ming() {
    		System.out.println("789");
    	}
    	
    	public void add ( int a, int b) {  //重载(overload),方法名相同,只有参数类型和个数不同,返回值也要相同
    		System.out.println(a+b);
    	}
    	public void add( double a,double b) {
    		
    	}
    	public String toString() {
    		String s = "name:"+name+",age:"+age;	// 重写,返回一个“以文本方式表示”此对象的字符串。
    		return s;
    		
    	}
    }
    
    
    
    
                    public class Ji2 extends Ji1 {   //继承的关键词
    	public void ming() {
    		System.out.println("跑");//重写  有一个绿色的三角形
    	}
    	
    	public Ji2()	{
    		super("小花"); 
    		//连接ji1里面构造的name方法
    	}
    	
    	
    	public void ming2() {
    		super.ming();  //super指向父类的引用
    	} 
    
    }
    
    
                public class Ce {
    
    	public static void main(String[] args) {
    		Ji2 ji2 = new Ji2();
    		ji2.ming2(); //super.ming指向ji1里面的成员方法ming
    		ji2.ming();  //子类覆盖了父类,重写(overwrite),
    		System.out.println(ji2.name); //ji1里面构造的name方法,super连接这个方法,名字输入的是 "小花"
    		
    		System.out.println(ji2.age);
    		
    		ji2.add(5,6); //重载
    		System.out.println(ji2);
    
    	}
    
    }
    

           习题    

        定义一个二维空间的点的类, 使用构造方法提供可以设置这个点的x, y坐标,
            并计算这个点到原点的距离, 原点定义为0, 0
            
            定义一个平面圆的类, 圆有一个引用类型的属性,
            Point类, 作为圆心,
            有一个半径属性, 提供计算此圆面积的方法,
            另外再提供一个方法,
            以Point类型作为参数, 并计算出此点是否在圆的范围内

          

            //点到原点的距离
    public class Point {
    	private double x;
    	private double y;
    	
    	public Point() {}
    	
    	public Point(double x, double y) {
    		this.x = x;
    		this.y = y;
    	}
    	
    	public double calInstance() {
    		double temp = x * x + y * y;
    		double ins = Math.sqrt(temp);
    		System.out.println("这个点到原点的距离是: " + ins);
    		return ins;     //
    	}
    
    	public double getX() {
    		return x;
    	}
    
    	public void setX(double x) {
    		this.x = x;
    	}
    
    	public double getY() {
    		return y;
    	}
    
    	public void setY(double y) {
    		this.y = y;
    	}
    }
    
         
            public class Circle {
    	private Point point;   //Point类作为圆心
    	private double radius;  //半径
    
    	public Circle() {
    	}
    
    	public Circle(Point point, double radius) {  //构造方法
    		super();
    		this.point = point;
    		this.radius = radius;
    	}
    
    	public Point getPoint() {
    		return point;      //get Point,以便在main方法里面调用
    	}
    	
    	public void getArea() {
    		double area = Math.PI * radius * radius;
    		System.out.println("这个圆的面积是:" + area);
    	}
    	//没有实例化,直接用Point类里的x,y
    	public boolean isContains(Point p) {  //点的范围  ,Point类型作为参数,给了一个布尔值的判断方法
    		double _x = p.getX() - this.point.getX();   //获取的x坐标  -  圆心的x值  
    		double _y = p.getY() - this.point.getY();   //获取的y坐标  - 圆心的y值
    		boolean flag = false;
    		// double d = Math.sqrt(_x * _x + _y * _y);  没有返回值的构造方法
    		double d = new Point(_x, _y).calInstance();   //有返回值,直接调用求坐标的方法
    		if(d <= radius) {
    			flag = true;
    		}
    		return flag;
    	}
    
    	public void setPoint(Point point) {
    		this.point = point;
    	}
    
    	public double getRadius() {
    		return radius;
    	}
    
    	public void setRadius(double radius) {
    		this.radius = radius;
    	}
    
    }
    
    
                 public class Main {
    
    	public static void main(String[] args) {
    
                   	Point p1 = new Point(3, 5);
    		p1.calInstance();  //点到原点的距离
    		Point p2 = new Point(4, 8);
    		Circle c1 = new Circle(p2, 10);//10是半径; p2是圆心
    		 c1.getArea();  //圆的面积
    		boolean b = c1.isContains(p1);  //判断的那个点是否在圆上
    		
    		if (b) {   //判断返回的值正确不正确
    			System.out.println("在圆内");
    		} else {
    			System.out.println("不在圆内");
    		}
    	}
    
    }
        
        
    
        
    
  • 相关阅读:
    JavaScript 中的undefined and null 学习
    html5 file upload and form data by ajax
    openresty + lua-resty-weedfs + weedfs + graphicsmagick动态生成缩略图(类似淘宝方案)
    ubuntu10.04 安装oracle server 版 笔记
    windows xp + mysql5.5 + phpmyadmin insert 中文繁體
    (原创)ubuntu 10.04+ruby1.9.2+rails3 安装记录
    ruby簡單的代碼行統計工具
    Ruby中如何复制对象 (deep clone)(转载)
    vi 常用命令使用說明
    一个小公司老板的日常管理日记,希望能让创业的朋友学到东西(转载)
  • 原文地址:https://www.cnblogs.com/zuo72/p/7862275.html
Copyright © 2020-2023  润新知