理解Java面向对象思想-类和对象

在编程入门上有一半的程序员被绊倒在门槛上而从此放弃跨入,从而少了无数的乐趣------小虎哥

准备出一套体系化的Java基础方面的文章,你会问 市场上已经有那么多Java基础方面的书为什么还要自己再去写文章了? 个人觉得市场上的书籍对于入门程序员不是很友好,入门不是那么简单,“世上最大的浪费就是经验的浪费”,我如果能把我自己微薄的知识向后续程序员传递分享那也是一种很幸福的事情。

“即使台下的观众只有一个,那我也要华丽的完成演出”。

万法归宗,夯实基础才能在不断变化的Java框架上游刃有余。

废话不多说,先从理解Java面向对象思想和Java的类和对象开始。这一章我觉得是最难的。理论思想永远是最重要的,你能想象莱布尼茨从中国道家的阴阳发明了二进制吗。

废话太多,现在开始。

1、什么是面向对象编程(Object-Oriented Programming OOP

小虎哥的定义:找出事物的属性行为就是面向对象编程。

2、什么是类class和对象object
例如:学生就是一个类,而小明小红就是这个类的具体的两个对象

学生这个事物进行归纳,属性有姓名、性别、年龄、学号等,
行为有学习、睡觉、玩游戏等。

-属性在Java中被叫做字段
-行为在Java中被叫做方法,在C/C++也被叫做函数

3、创建一个学生类Student

Java规定:类名首字母大写,字段名首字母小写,方法名首字母小写。

public class Student {
    // 姓名
    String name;

    // 年龄
    int age;

    public float study(String lesson, float hour) {
        System.out.println("姓名:" + name);
        System.out.println("年龄:" + age);
        System.out.println("学习课程:" + lesson);
        System.out.println("学习时长:" + hour);
        // 方法返回多少分钟
        return hour * 60;
    }

    public static void main(String[] args) {
        Student s1 = new Student();
        s1.name = "小明";
        s1.age = 18;
        float result = s1.study("Java", 1.5f);
        System.out.println("调用study方法返回结果:" + result);
    }
}

可以看到代码中有个main方法,这个方法是固定格式的,是程序运行的入口方法。程序运行从这开始。

public static void main(String[] args) {
    Student s1 = new Student();
    s1.name = "小明";
    s1.age = 18;
    float result = s1.study("Java", 1.5f);
    System.out.println("调用study方法返回结果:" + result);
}

4、类的字段

字段就是描述事物属性的,可以看到Student有两个字段nameage,类的字段也被称为类的`成员变量。

// 姓名
String name;

// 年龄
int age;

5、类的方法

何为方法:方法就是 输入->执行(处理)->输出。

这里的study方法就是打印学生信息和学习课程和时长信息,并返回学习分钟。

输入:课程lesson和小时hour
执行:打印姓名、年龄、学习课程、学习时长。
返回:将小时乘以60转化为分钟返回。

public float study(String lesson, float hour) {
    System.out.println("姓名:" + name);
    System.out.println("年龄:" + age);
    System.out.println("学习课程:" + lesson);
    System.out.println("学习时长:" + hour);
    // 方法返回多少分钟
    return hour * 60;
}

可以看到方法定义规则如下:

访问限定符 返回值类型 方法名(方法参数)

public float study(String lesson, float hour)

6、如何通过类生成对象

通过new关键字来生成对象,如下。这样就生成了一个具体的学生s1

Student s1 = new Student();

7、如何给对象字段赋值和调用方法

通过对象.字段名就可以给对象的字段赋值,如下。这样就给s1这个学生赋值了姓名和年龄。

s1.name = "小明";
s1.age = 18;

通过对象.方法(参数)就可以调用方法,并且可以定义一个变量接受方法返回的值,如下:

float result = s1.study("Java", 1.5f);

调用方法就是执行方法,这里传入的参数 课程是java和学习时长1.5f
8、运行结果

程序运行结果如下:

04.png

关注微信公众号:小虎哥的技术博客

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容