Java abstract类的基本使用 和 [abstract类实现]打印1000以内的所有素数并输出时间
笔记:
/** 关键字abstract ,实现抽象类,相当于给出类的大纲,子类只管继承,但抽象类不可被实例化!
* 1.抽象方法只保留方法的功能,而具体的执行,交给继承抽象类的子类,由子类重写所有的抽象方法.
*
* 2.abstract模板方法设计模式--
* 抽象类作为多个子类的通用模板,子类在抽象类的基础上进行扩展/改造,
* 但子类在总体上会保留抽象类的行为方式.
*/
代码:
package Coding;
public class Main_of_Coding { //TestAbstract
public static void main(String[] args) {
new SubTemple().spendtime(); //[abstract类实现]打印1000以内的所有素数并输出时间
}
}
abstract class Temple{
public abstract void code(); //这个方法抽象,需要重写
public void spendtime(){ //这个方法不抽象,不用重写
long start =System.currentTimeMillis();
this.code();
long end=System.currentTimeMillis();
System.out.print("cost time is: "+ (end-start));
}
}
class SubTemple extends Temple{
@Override
public void code() {
boolean f=false;
for(int i=2;i<=1000;i++){
for(int j=2;j<=Math.sqrt(i);j++){
if(i%j==0){
f=true;
break;
}
}
if(!f){
System.out.print(" "+i);
if(i%10%7==0) System.out.println();
}
f=false;
}
}
}
结果: (最后一位为7的话自动换行)
2 3 5 7
11 13 17
19 23 29 31 37
41 43 47
53 59 61 67
71 73 79 83 89 97
101 103 107
109 113 127
131 137
139 149 151 157
163 167
173 179 181 191 193 197
199 211 223 227
229 233 239 241 251 257
263 269 271 277
281 283 293 307
311 313 317
331 337
347
349 353 359 367
373 379 383 389 397
401 409 419 421 431 433 439 443 449 457
461 463 467
479 487
491 499 503 509 521 523 541 547
557
563 569 571 577
587
593 599 601 607
613 617
619 631 641 643 647
653 659 661 673 677
683 691 701 709 719 727
733 739 743 751 757
761 769 773 787
797
809 811 821 823 827
829 839 853 857
859 863 877
881 883 887
907
911 919 929 937
941 947
953 967
971 977
983 991 997
cost time is: 30
Java abstract类的基本使用 和 [abstract类实现]打印1000以内的所有素数并输出时间的更多相关文章
- java打印1000内的质数并用表格输出
<table width='500' border='1'><% int c=1; for(int i=2;i<=1000;i++){ int n=0; for(int j=2 ...
- java面试题0004-在一个类上是否可以用abstract和final同时加以修饰?
我们先用提干两个修饰词中的任意一个创建一个类 package components.javaTest.day4_20200910; /** * Question004: * java面试题0004-在 ...
- java的this static public protected private abstract interface 在python的对应,java python一些区别
1.因为工作的原因,最近使用了三个多月的java作为主力语言.很早之前在菜鸟教程也看过java文档两遍,但实践少,处于能看懂写出来不流畅的状态(对于java必须要略懂,不能能看到就头疼跳过,因为现在百 ...
- C++虚函数virtual,纯虚函数pure virtual和Java抽象函数abstract,接口interface与抽象类abstract class的比较
由于C++和Java都是面向对象的编程语言,它们的多态性就分别靠虚函数和抽象函数来实现. C++的虚函数可以在子类中重写,调用是根据实际的对象来判别的,而不是通过指针类型(普通函数的调用是根据当前指针 ...
- 为什么java的接口的方法是public abstract修饰?为什么属性是public static final 修饰?
为什么java的接口的方法是public abstract修饰? 1.首先要明白接口的定义和作用是什么: 接口定义:接口是一个全部由抽象方法组成的集合,里面都是抽象方法和常量,用interface修 ...
- JAVA类与对象(三)----类定义关键字详解
static 表示静态,它可以修饰属性,方法和代码块. 1.static修饰属性(类变量),那么这个属性就可以用类名.属性名来访问,也就是使这个属性成为本类的类变量,为本类对象所共有.这个属性就是全类 ...
- JAVA类与对象(二)----类定义基础
类是组成java程序的基本要素,是java中的一种重要的复合数据类型.它封装了一类对象的状态和方法,是这一类对象的原型.一个类的实现包括两个部分:类声明和类体,基本格式: class <clas ...
- Java中Super和final关键字以及异常类
1.final类不能有子类,也就谈不上继承的说法,如果用final修饰成员变量或者局部变量,那成了常量需要制定常量的值. 2.对象的上转型对象,上转型对象不能操作子类新增的成员变量,不能调用子类新增的 ...
- 详解Java中格式化日期的DateFormat与SimpleDateFormat类
DateFormat其本身是一个抽象类,SimpleDateFormat 类是DateFormat类的子类,一般情况下来讲DateFormat类很少会直接使用,而都使用SimpleDateFormat ...
随机推荐
- IO流学习
1,流是一组有顺序的,有起点和重点的字节集合,是对数据传输的总称和抽象.即数据在两个设备之间的传输称作流.流的本质就是数据传输,根据数据传输的特性,将流抽象为各种累,方便直观的进行数据操作. 2,根据 ...
- 设计模式的好书 -- ongoing
1 设计模式--可复用面向对象软件的基础 Erich Gamma. Richard Helm -- 已经下载了/baiduNetDisk Design Patterns --- Element ...
- 【LOJ】#2210. 「HNOI2014」江南乐
LOJ#2210. 「HNOI2014」江南乐 感觉是要推sg函数 发现\(\lfloor \frac{N}{i}\rfloor\)只有\(O(\sqrt{N})\)种取值 考虑把这些取值都拿出来,能 ...
- PO,VO,DAO,BO,POJO之间的区别与解释
VO value object:值对象 通常用于业务层之间的数据传递,由new创建,由GC回收. PO persistant object:持久层对象 对应数据库中表的字段. VO和PO,都是属性加上 ...
- 某 游戏公司 php 面试题
1.实现未知宽高元素的水平垂直居中,至少两种方法. <div, class="father"> <div class="son">< ...
- python学习-11 运算符2
布尔值 1.真 true 假false name = 'abc' c = 'c' in name print(c) 运算结果: True Process finished with exit code ...
- java-TheadPoolExecutor
Executor的两极调度模型 第一级:java多线程程序把应用分解为若干个任务,然后使用用户级的调度器(Executor框架)将这些任务映射为固定数量的线程: 第二级:操作系统内核将这些线程映射到处 ...
- 一文搞懂嵌入式uboot、kernel、文件系统的关系
总览: 在linux系统软件架构可以分为4个层次(从低到高分别为): 1.引导加载程序 引导加载程序(Bootloader)是固化在硬件Flash中的一段引导代码,用于完成硬件的一 ...
- Warning: popen() has been disabled for security reasons in OS/Guess.php on line 241
今天使用pecl install swoole命令编译安装swoole的时候提示:Warning: popen() has been disabled for security reasons in ...
- .net core mvc + mysql dbfirst 生成 ado.net 数据模型
1.点击“工具”->“NuGet包管理器”->“程序包管理器控制台” 安装一下包 Install-Package MySql.Data.EntityFrameworkCore -Pre I ...