Java简单的面向对象

JavaScript允许你模仿其他语言的编程模式和惯用法。它也形成了自己的一些变成模式和惯用法。那些较为传统的服务器语言具有的面向对象的特性,JavaScript都有。

下面列举几种简单的JavaScript面向对象的例子来实现一个简单的计时器。

所有例子共用此Html  ,各个例子main.js

<!DOCTYPE html>
<html>

<head>
    <title>Demo-01</title>
    <script src="./main.js"></script>
</head>

<body>
    <button onclick="Test1()">开始计时</button>
    <div class="time">
        <span id="t_d">00天</span>
        <span id="t_h">00时</span>
        <span id="t_m">00分</span>
        <span id="t_s">00秒</span>
    </div>

    <button onclick="Test2()">结束计时</button>
</body>

</html>

  1.方法一

 function GetRTime() {
     var EndTime = new Date(‘2017/01/20 00:00:00‘);
     var NowTime = new Date();
     var t = Math.abs(EndTime.getTime() - NowTime.getTime());
     var d = 0;
     var h = 0;
     var m = 0;
     var s = 0;
     if (t >= 0) {
         d = Math.floor(t / 1000 / 60 / 60 / 24);
         h = Math.floor(t / 1000 / 60 / 60 % 24);
         m = Math.floor(t / 1000 / 60 % 60);
         s = Math.floor(t / 1000 % 60);
     }
     document.getElementById("t_d").innerHTML = d + "天";
     document.getElementById("t_h").innerHTML = h + "时";
     document.getElementById("t_m").innerHTML = m + "分";
     document.getElementById("t_s").innerHTML = s + "秒";
 }
 //setInterval(GetRTime, 0);
 var main = function() {

 }
 var timer1;
 main.prototype.start = function() {
     timer1 = setInterval(GetRTime, 0);
 }
 main.prototype.stop = function() {
     window.clearInterval(timer1)
 }
 var Test1 = function() {
     var b = new main();
     b.start();
 }
 var Test2 = function() {
     var b = new main();
     b.stop();
 }

  2.方法二

 function GetRTime() {
     var EndTime = new Date(‘2017/01/20 00:00:00‘);
     var NowTime = new Date();
     var t = Math.abs(EndTime.getTime() - NowTime.getTime());
     var d = 0;
     var h = 0;
     var m = 0;
     var s = 0;
     if (t >= 0) {
         d = Math.floor(t / 1000 / 60 / 60 / 24);
         h = Math.floor(t / 1000 / 60 / 60 % 24);
         m = Math.floor(t / 1000 / 60 % 60);
         s = Math.floor(t / 1000 % 60);
     }
     document.getElementById("t_d").innerHTML = d + "天";
     document.getElementById("t_h").innerHTML = h + "时";
     document.getElementById("t_m").innerHTML = m + "分";
     document.getElementById("t_s").innerHTML = s + "秒";
 }
 //setInterval(GetRTime, 0);
 var main = function() {

 }
 var timer1;
 main.prototype = {
     start: function() {
         timer1 = setInterval(GetRTime, 0);
     },
     stop: function() {
         window.clearInterval(timer1);
     }
 };
 var Test1 = function() {
     var b = new main();
     b.start();
 }
 var Test2 = function() {
     var b = new main();
     b.stop();
 }

  3.方法三

 function GetRTime() {
     var EndTime = new Date(‘2017/01/20 00:00:00‘);
     var NowTime = new Date();
     var t = Math.abs(EndTime.getTime() - NowTime.getTime());
     var d = 0;
     var h = 0;
     var m = 0;
     var s = 0;
     if (t >= 0) {
         d = Math.floor(t / 1000 / 60 / 60 / 24);
         h = Math.floor(t / 1000 / 60 / 60 % 24);
         m = Math.floor(t / 1000 / 60 % 60);
         s = Math.floor(t / 1000 % 60);
     }
     document.getElementById("t_d").innerHTML = d + "天";
     document.getElementById("t_h").innerHTML = h + "时";
     document.getElementById("t_m").innerHTML = m + "分";
     document.getElementById("t_s").innerHTML = s + "秒";
 }
 //setInterval(GetRTime, 0);
 Function.prototype.method = function(name, fn) {
     this.prototype[name] = fn;
 }
 var main = function() {

 }
 var timer1;
 main.method(‘start‘, function() {
     timer1 = setInterval(GetRTime, 0);
 });
 main.method(‘stop‘, function() {
     window.clearInterval(timer1);
 });

 var Test1 = function() {
     var b = new main();
     b.start();
 }
 var Test2 = function() {
     var b = new main();
     b.stop();
 }

  4.方法四

 function GetRTime() {
     var EndTime = new Date(‘2017/01/20 00:00:00‘);
     var NowTime = new Date();
     var t = Math.abs(EndTime.getTime() - NowTime.getTime());
     var d = 0;
     var h = 0;
     var m = 0;
     var s = 0;
     if (t >= 0) {
         d = Math.floor(t / 1000 / 60 / 60 / 24);
         h = Math.floor(t / 1000 / 60 / 60 % 24);
         m = Math.floor(t / 1000 / 60 % 60);
         s = Math.floor(t / 1000 % 60);
     }
     document.getElementById("t_d").innerHTML = d + "天";
     document.getElementById("t_h").innerHTML = h + "时";
     document.getElementById("t_m").innerHTML = m + "分";
     document.getElementById("t_s").innerHTML = s + "秒";
 }
 //setInterval(GetRTime, 0);
 Function.prototype.method = function(name, fn) {
     this.prototype[name] = fn;
     return this;
 }
 var main = function() {

 }
 var timer1;
 main.method(‘start‘, function() {
     timer1 = setInterval(GetRTime, 0);
 }).method(‘stop‘, function() {
     window.clearInterval(timer1);
 });

 var Test1 = function() {
     var b = new main();
     b.start();
 }
 var Test2 = function() {
     var b = new main();
     b.stop();
 }

  在JavaScript中,函数是一等对象。它们可以存储在变量中,可以作为参数传递给其他函数,可以作为返回值从其他函数传出,还可以在运行时进行构造,这些特性带来了极大的灵活性和极强的表达能力。

时间: 2024-10-29 11:35:13

Java简单的面向对象的相关文章

黑马程序员【Java中的面向对象】

Java中的面向对象 在软件开发的学习中, 我最先接触的开发语言就是java,但都是简单的函数和循环数组的应用.说道面向对象,第一次看到这个词的时候还是在C#的学习过程中,我记得当时PPT上霸气的解释,什么是对象?万物皆对象!够霸气吧,当时的面向对象思想对我来说还是挺崩溃的,什么继承多态啊!经过了无数的联系项目的书写,终于对面向对象有了一定的理解,现在刚好在java的学习中再度重温面向对象,那么就将我眼中的面向对象写出来分享给大家. 说到面向对象,我们就不得不提一下他的三大特性,继承封装和多态.

Java编程基础-面向对象(中)

本章承接Java编程基础-面向对象(上)一文. 一.static关键字 在java中,定义了一个static关键字,它用于修饰类的成员,如成员变量.成员方法以及代码块等,被static修饰的成员具备一些特性. 1.static关键字的特点: a)随着类的加载而加载,也就是说,静态会随着类的消失而消失,说明它的生命周期最长. b)优先于对象存在,明确一点,静态是先存在的,对象是后存在的. c)被类的所有对象共享. d)可以通过类名调用. 2.静态变量 在一个java类中,可以使用static关键字

初识JAVA(【面向对象】:pub/fri/pro/pri、封装/继承/多态、接口/抽象类、静态方法和抽象方法;泛型、垃圾回收机制、反射和RTTI)

JAVA特点: 语法简单,学习容易 功能强大,适合各种应用开发:J2SE/J2ME/J2EE 面向对象,易扩展,易维护 容错机制好,在内存不够时仍能不崩溃.不死机 强大的网络应用功能 跨平台:JVM,字节码 两个命令: javac helloworld.java:将Java文件编译为字节码的.class文件 java helloworld:运行Java程序...??暂时这么认为 数据类型: 普通数据类型:int a=3; 对象数据类型:使用关键字new,String s=new String("

Java基础和面向对象

Java基础和面向对象 一.数据类型和运算符 标识符 组成:字母.数字.下划线.$ 首字母:不能是数字 见名知义 不能是关键字(48个) 正确的:name.name123.age._name.$name 错误的:1name.public.123.na%me 标识符主要给一个元素起名字,需要符合起名字的以上4种规则.比如说,类的名字:首字母大写:变量名称:小写:方法名称:驼峰命名:数组名称.接口名称.集合名称. //你定义为汉字也可以,不过不推荐,因为国际语言以English为主.为了面向世界,使

zoj Fibonacci Numbers ( java , 简单 ,大数)

题目 //f(1) = 1, f(2) = 1, f(n > 2) = f(n - 1) + f(n - 2) import java.io.*; import java.util.*; import java.math.*; public class Main { /** * @xqq */ public BigInteger an(int n) { BigInteger c; BigInteger a = BigInteger.valueOf(1); BigInteger b = BigIn

学java教程之面向对象(四)

学编程吧学java教程之面向对象(四)发布了,欢迎通过xuebiancheng8.com来访问 本次课来分析java面向对象之构造方法.什么是构造方法呢,构造方法听名字顾名思义,构造的时候执行的方法就叫构造方法. 没错,构造方法就是在构造对象的时候执行的方法,就是构造方法,那什么时候构造对象呢,是不是在new的时候调用构造对象呢,所以构造方法就是在new对象的时候执行的方法就是构造方法.构造方法一般用来为对象赋初值.完成对象的初始化. 下面我们来看如何定义构造方法. public class P

rabbitmq的java简单实现

1,安装rabbitmq.我的是ubuntu14.04,在官网上面下载最新的安装文件http://www.rabbitmq.com/install-debian.html 2.安装完之后  启动rabbitmq, sudo rabbitmq-server 3.下载jar包 4.最简单的hello world的实现 Sender类 package com.lubby.test; import java.io.IOException; import com.rabbitmq.client.Chann

Java简单聊天室

实现Java简单的聊天室 所用主要知识:多线程+网络编程 效果如下图 /** * * @author Administrator * * 简单的多人聊天系统——重点:同时性,异步性 * 1.客户端:发送消息,并且接收消息 * 1.1 消息发送至服务器:服务器每次都将客户发过来的信息发送到每个客户端 * 1.2 接收消息:发送的同时也要接收消息,所以必须有两个线程,一个发送消息,一个接收消息 * 1.3 关于这两个线程:如果没有线程,接收和发送就是按顺序执行的了,那么是发送后接收还是接收后发送?或

HDU 1715 大菲波数(JAVA, 简单题,大数)

题目 //BigInteger 和 BigDecimal 是在java.math包中已有的类,前者表示整数,后者表示浮点数 import java.io.*; import java.util.*; import java.math.*; public class Main { /** * @xqq */ public BigInteger an(BigInteger a, BigInteger b, int n) { if(n == 1) { return a; } for(int i = 2