设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

Go学习笔记 - 关于Java、Python、Go编程思想的不同

2013-8-5 15:45| 发布者: 红黑魂| 查看: 8440| 评论: 2|来自: 博客园

摘要: 看了两周七牛团队翻译的《Go语言程序设计》,基本上领略到了Go语言的魅力。学习一个语言,语法什么的任何人都是很容易学会,难就难在充分领略到这门编程语言的思想。 面向对象 喂!屌丝码农该找个对象了。 除去Java ...

看了两周七牛团队翻译的《Go语言程序设计》,基本上领略到了Go语言的魅力。学习一个语言,语法什么的任何人都是很容易学会,难就难在充分领略到这门编程语言的思想。

面向对象

喂!屌丝码农该找个对象了。

除去Java Python Go这三种语言底层以及语法的不同,这里以个人的理解只说说其面向对象方面的思想。 一个简单的示例:

描述人,李雷,韩梅梅,他俩都是好学生。

将用 java python go 这三种语言分别简单的描述。


Java 思想

人,是抽象的概念,可以洗衣做饭的灵长目物种,没法特指一样具体的东西,但它也有一些如性别、撒尿这类的属性和功能。

/**
 * 抽象出来的人
 */
abstract class Human {
    protected String sex;
    protected String name;

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getSex() {
        return this.sex;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    abstract void doPee(); // 抽象的方法
}

这里使用抽象类,是因为名字都是父母起的,但撒尿的方法男女不同。接下来是具象人这个抽象的概念了。这里就固话性别属性并且具体定义撒尿的方式。

/** * 具象的男性 */ class Male extends Human { public Male() { this.sex = "男"; }

    /**
     * 实现的方法
     */
    public void doPee() {
        System.out.println(this.name + " " + this.sex + "站着撒尿.");
    }
}

/**
 * 具象的女性
 */
class Female extends Human {
    public Female() {
        this.sex = "女";
    }

    /**
     * 实现的方法
     */
    public void doPee() {
        System.out.println(this.name + " " + this.sex + "蹲着撒尿.");
    }
}

现在有男人和女人了,然后李磊和韩梅梅就要来折磨我们了

Male lilei = new Male();
lilei.setName("李磊");
System.out.println(lilei.getName() + " " + lilei.getSex() + " " + "出场");


Female hanmeimei = new Female();
hanmeimei.setName("韩梅梅");
System.out.println(hanmeimei.getName() + " " + hanmeimei.getSex() + " " + "出场");

lilei.doPee();
hanmeimei.doPee();

_________________________________________________
output: 李磊 男 出场
output: 韩梅梅 女 出场
output: 李磊 男站着撒尿.
output: 韩梅梅 女蹲着撒尿.

李磊和韩梅梅都是好学生,我们这里定义学习的接口,这里的接口就是,大家必须得死学傻学,怎么学看你自己。

/**
 * 学习接口
 */
interface Study {
    public abstract void learningEnglish();
}

上面是教育部规定的,李磊韩梅梅作为学生必须得学,男人女人都得经历的。来实现学习接口。

 class Male extends Human implements Study {
    ......
    ......

    /**
     * 实现的接口
     */
    public void learningEnglish() {
        System.out.println(this.name + ": How are you?");
    }
}

/**
 * 具象的女性
 */
class Female extends Human implements Study {
    ......
    ......

    /**
     * 实现的接口
     */
    public void learningEnglish() {
        System.out.println(this.name + ": I'm fine, thank you!");
    }
}

......
......

lilei.doPee();
hanmeimei.doPee();

lilei.learningEnglish();
hanmeimei.learningEnglish();

_________________________________________________
output: 李磊: How are you?
output: 韩梅梅: I'm fine, thank you!

java的思想大致就是这么样。很严谨,就像一个老学究,1就是1,2就是2。

这是所有的java代码

Main.java

public class Main {

    public static void main(String[] args) {

        Male lilei = new Male();
        lilei.setName("李磊");
        System.out.println(lilei.getName() + " " + lilei.getSex() + " " + "出场");


        Female hanmeimei = new Female();
        hanmeimei.setName("韩梅梅");
        System.out.println(hanmeimei.getName() + " " + hanmeimei.getSex() + " " + "出场");


        lilei.doPee();
        hanmeimei.doPee();

        lilei.learningEnglish();
        hanmeimei.learningEnglish();
    }
}

/**
 * 抽象出来的人
 */
abstract class Human {
    protected String sex;
    protected String name;

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getSex() {
        return this.sex;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return this.name;
    }

    abstract void doPee(); // 抽象的方法
}

/**
 * 学习接口
 */
interface Study {
    public abstract void learningEnglish();
}

/**
 * 具象的男性
 */
class Male extends Human implements Study {
    public Male() {
        this.sex = "男";
    }

    /**
     * 实现的方法
     */
    public void doPee() {
        System.out.println(this.name + " " + this.sex + "站着撒尿.");
    }

    /**
     * 实现的接口
     */
    public void learningEnglish() {
        System.out.println(this.name + ": How are you?");
    }
}

/**
 * 具象的女性
 */
class Female extends Human implements Study {
    public Female() {
        this.sex = "女";
    }

    /**
     * 实现的方法
     */
    public void doPee() {
        System.out.println(this.name + " " + this.sex + "蹲着撒尿.");
    }

    /**
     * 实现的接口
     */
    public void learningEnglish() {
        System.out.println(this.name + ": I'm fine, thank you!");
    }
}



酷毙

雷人
2

鲜花

鸡蛋

漂亮

刚表态过的朋友 (2 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部