java - day12 - ShapeTest

  抽象类的定义及使用

抽象类不能实例化,但抽象类名的数组类型可以,见案例

 1 package com.example;
 2
 3
 4 public class ShapeTest {
 5     public static void main(String[] args){
 6         Shape[] shapes = new Shape[3];  //shape为抽象类,不可以实例化;shape[]为数组类,可以实例化
 7         shapes[0] = new Square(3.1);
 8         shapes[1] = new Circle(1.5);
 9         shapes[2] = new Circle(2.4);
10         ShapeTest x = new ShapeTest();
11         System.out.println(x.areaMax(shapes));
12     }
13
14     double areaMax(Shape[] shapes){
15         double areamax = shapes[0].area();
16         for(int i=0;i<shapes.length;i++){
17             double max = shapes[i].area();
18             if(max>areamax){
19                  areamax = max;
20             }
21         }
22         return areamax;
23     }
24 }
25
26 abstract class Shape{
27     double a;
28     abstract double area();
29 }
30
31 //子类继承父类抽象方法--重写
32 class Square extends Shape{
33     Square(double a){
34             this.a = a;
35         }
36     }
37     @Override
38     double area(){
39         return 0.0625*a*a;
40     }
41 }
42
43 class Circle extends Shape{
44     Circle(double a){
45         this.a = a;
46     }
47     @Override
48     double area(){
49         return 0.0796*a*a;
50     }
51 }
时间: 2024-10-26 06:52:32

java - day12 - ShapeTest的相关文章

尚学堂 JAVA DAY12 java程序执行时内存的分配

尚学堂 JAVA DAY12 概念总结

面向过程和面向对象的区别.(5 分)面向过程就好像:一位父亲吩咐自己8岁的小儿子去买啤酒.他需要考虑儿子从出门后的每一个步骤,叮嘱儿子出门怎么走,如何过马路,到了超市如何找到酒水区,怎么识别需要的品牌,最后去哪里找收银员付账,付账时要注意找零不要出错,回来时过马路要等红绿灯等等各种细节都需要一一考虑到:面向对象就像:还是这位父亲10年后吩咐18岁的儿子再去买啤酒.这一次,他只说了一句,儿子今晚我们喝青岛啤酒,去买点儿回来.18岁的儿子10分钟不到就买回来了啤酒.因此可以认为:面向过程是以一种过程

【JAVA零基础入门系列】Day12 Java类的简单应用

俗话说的好,实践出真知,所以除了理论知识掌握扎实以外,更重要的是要多加操练,这样才能掌握核心科技. 今天我们就用刚学会的类来实践一下,目标便是完成上一篇中的剁手任务. 我们的商品类已经准备好了,代码重新罗列一次,这里增加了一个重载方法,关于重载这里不过多介绍,以后会专门文章介绍,这里把它当成一个普通方法就好了,主要用来比较两个商品是否相等,如果对代码不熟悉的话可以再返回去看一下上一篇文章. 这里顺便介绍一下Java注释的正确使用姿势.注释是插在源代码中间用于对代码进行说明的文字,不会被编译和执行

【Java入门提高篇】Day12 Java代理——Cglib动态代理

今天来介绍另一种更为强大的代理--Cglib动态代理. 什么是Cglib动态代理? 我们先回顾一下上一篇的jdk动态代理,jdk动态代理是通过接口来在运行时动态创建委托类的代理对象,但是跟静态代理一样有一个缺点,就是必须和委托类实现相同的接口,当接口数量增加时,便需要增加代理类的数量才能满足需求,而且如果委托类是别人写的,而且没有实现任何接口,那么jdk动态代理就有些力不从心了. 这时候Cglib动态代理就脱颖而出了,Cglib并不依赖接口,可以直接生成委托类的代理对象,而且可以代理委托类的任意

【DAY12】第十二天集合&泛型&IO学习笔记

hash:散列 ------------------ Hashset集合内部是通过HashMap进行实现的.使用的是HashMap中key部分. 对象在添加进集合中时,首选会对hashcode进行处理(hashcode右移16位和 自身做异或运算)得到一个经过处理的hash值,然后该值和集合的容量进行 &运算,得到介于0和集合容量值之间一个数字.该数字表示着数组的下标. 也就是该元素应该存放在哪个元素中. Map与Collection -------------- Map与Collection在

Java字符串实例

需求1:自己实现trim的方法. 需求2: 获取上传文件名  "D:\\20120512\\day12\\Demo1.java". 需求3: 将字符串对象中存储的字符反序.    新中国好     -----> 好国中新 需求4: 求一个子串在整串中出现的次数 . public class Demo6 { public static void main(String[] args) { String str  ="        传智        播客        

Java核心 --- 枚举

Java核心 --- 枚举 枚举把显示的变量与逻辑的数字绑定在一起在编译的时候,就会发现数据不合法也起到了使程序更加易读,规范代码的作用 一.用普通类的方式实现枚举 新建一个终态类Season,把构造方法设为私有,因为枚举值不能随意增加因为不能new出这个类的对象,所以需要定义成员变量,把new写在类的内部这样,就可以在类的外部通过访问类的静态成员变量的方式访问到枚举值通过这样的方式,只能在类的外部使用在枚举类的内部定义的枚举值 类Season里面是可以有方法的,我们设置地球又公转了四分之一方法

day12(jsp指令&内置对象&动作标签、JavaBean、EL表达式&函数库)

day12 JSP指令 JSP指令概述 JSP指令的格式:<%@指令名 attr1="" attr2="" %>,一般都会把JSP指令放到JSP文件的最上方,但这不是必须的. JSP中有三大指令:page.include.taglib,最为常用,也最为复杂的就是page指令了. 2 page指令 page指令是最为常用的指定,也是属性最多的属性! page指令没有必须属性,都是可选属性.例如<%@page %>,没有给出任何属性也是可以的!

Java String、StringBuffer和StringBuilder类

package com.fish.string; /*  String 字符串类:     题目:new String("abc")创建了几个对象?  两个对象,一个对象是 位于字符串常量池中,一个对象是位于堆内存中.    */ public class Demo1 {     public static void main(String[] args) {         String str1 = "hello";         String str2 =