• java 接口实现多态


    package unit4;
    import java.awt.Graphics;
    
    public interface Shape {
        void drowme(Graphics g);
        double area();
        double length();
        String getName();
    
    }
    package unit4;
    
    import java.awt.Graphics;
    
    public class Point implements Shape{
        int x,y;
        Point (int x,int y){this.x=x;this.y=y;}
        
        public double area() {
            // TODO Auto-generated method stub
            return 0;
        }
        public void drowme(Graphics g) {
            g.fillOval(x,y,5,5);
            
        }
        public String getName() {
            // TODO Auto-generated method stub
            return "Point";
        }
        public double length() {
            // TODO Auto-generated method stub
            return 0;
        }
    }
        
    package unit4;
    
    import java.awt.Graphics;
    
    public class Triangle implements Shape {
        Point a,b,c;
        public Triangle(Point aa,Point bb,Point cc) {
            // TODO Auto-generated constructor stub
            a=aa;
            b=bb;
            c=cc;
            
        }
    
        public double area() {
            
            double a_b=Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
            double a_c=Math.sqrt((a.x-c.x)*(a.x-c.x)+(a.y-c.y)*(a.y-c.y));
            double b_c=Math.sqrt((b.x-c.x)*(b.x-c.x)+(b.y-c.y)*(b.y-c.y));
            double l=(a_b+a_c+b_c)/2;
            double s=Math.sqrt((l-a_b)*(l-b_c)*(l-a_c)*l);
            return s;
        }
    
        public void drowme(Graphics g) {
            g.drawLine(a.x,a.y,b.x,b.y);
            g.drawLine(a.x,a.y,c.x,c.y);
            g.drawLine(b.x,b.y,c.x,c.y);
            
        }
    
        public String getName() {
            return "triangle";
        }
    
        public double length() {
            double a_b=Math.sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
            double a_c=Math.sqrt((a.x-c.x)*(a.x-c.x)+(a.y-c.y)*(a.y-c.y));
            double b_c=Math.sqrt((b.x-c.x)*(b.x-c.x)+(b.y-c.y)*(b.y-c.y));
            double l=(a_b+a_c+b_c);
            return l;
        }
        
    
    }
    package unit4;
    
    import java.awt.Graphics;
    
    public class Circl implements Shape {
    
        Point c;
        int r;
        public Circl(Point cc,int rr) {
            c=cc;
            r=rr;
        }
        public double area() {
            return 3.14159*r*r;
        }
    
        public void drowme(Graphics g) {
            g.drawOval(c.x-r,c.y-r,2*r,2*r);
            
        }
    
        public String getName() {
            return "circle";
        }
    
        public double length() {
            return 2*3.14159*r;
        }
        
    
    }
    package unit4;
    
    import java.awt.Graphics;
    
    public class Rect implements Shape{
        Point a,b;
        Rect(Point aa,Point bb){a=aa;b=bb;}
    
        public double area() {
            
            return (a.x-b.x)*(a.y-b.y);
        }
    
        public void drowme(Graphics g) {
            g.drawRect(a.x,a.y,b.x-a.x,b.y-a.y);
            
        }
    
        public String getName() {
            return "rectangle";
        }
    
        public double length() {
            return (b.x-a.x)*2+(b.y-a.y)*2;
        }
        
    
    }
    package unit4;
    
    import java.applet.Applet;
    import java.awt.Graphics;
    
    public class Shapetest extends Applet{
         Shape[]myshapes=new Shape[5];
        public  void init() {
            
             Point a0=new Point(50,50);
             Point a1 = new Point(24,24);
             Point a2=new Point(100,200);
             Point a3 = new Point(200,120);
             myshapes[0]=a0;
             myshapes[1]=new Triangle(a1,a2,a3);
             myshapes[2]=new Circl(a2,50);
             myshapes[3]=new Circl(a3,100);
             myshapes[4]=new Rect(new Point(100,100),new Point(200,200));
            
            
        }
        public void paint(Graphics g){
            for(int i=0;i<myshapes.length;i++){
                myshapes[i].drowme(g);
                System.out.println(myshapes[i].getName()+": area: "+myshapes[i].area()+", length: "+myshapes[i].length());
            }
        }
    
    }

    这里可以直接在eclipse上运行位applet,但是,我发现一个严重的问题,我没法部署网站,哎,先不管了,以后用到了在慢慢调吧。

    每次都要费老大劲配置。我日。。

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <applet code="shapetest.class" width=400 height=400>
        </applet>
    
    </body>
    </html>

    理论上,配置成功可以在网页上启动小程序的。

  • 相关阅读:
    django–url
    SQLServer-镜像配置
    linux-阿里云ECS部署PPTP(centos)
    linux- svn服务器
    python(7)– 类的反射
    python(7)–类的多态实现
    python(6)-shutil模块
    python(6)-执行shell命令
    python(6)-类
    nagios–配置文件
  • 原文地址:https://www.cnblogs.com/superxuezhazha/p/5713145.html
Copyright © 2020-2023  润新知