添砖Java(其四)——面向对象的编程,类和对象

目录

 

前言:

面向对象的编程:

this关键字:

构造方法:


 

前言:

其实中间我还有很多地方没有去讲,因为我觉得里面的很多东西和c/c++差不太多,就比如逻辑运算,方法重载,以及数组方面都差不了太多,我已我直接写类和对象的笔记了。

面向对象的编程:

官方的解释:面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识的深化

我的理解是就是:比如我们要把大象装进冰箱,大象就是对象,而讲大象装进冰箱就是方法,需要将方法与大象数据独立出来,这是一种编程思想,Java就是用的这种思想。

 

类与对象:

类与对象:其实就是一种关系,一个类可以创建很多对象,就比如下面一张图片

1ae7664c72ce441a9580ffaf7d9b6247.png

简单解释一下就是猫是一个类,而其他不同种类的猫就可以叫做这个类的对象,可以说是非常的简单。

所以这时候我们就可以总结一下类的类和对象的关系:
1.一个类可以装创建多个对象。
2.我们是根据类创建的对象。(猫的类只能创建出关于猫的对象)

this关键字:

在c++这一块呢叫做this指针,其实在java里呢,其实也是指针,而这个指针有什么用呢?在这只讲部分,后面还会提到。
1.区分其他变量,这块特别是在构造方法中体现。
这时我们就要引进构造方法了。

构造方法:

这里的构造方法,类似于c++中的构造函数,就是用来初始化我们的对象成员变量。
tip:一般我们都会对一个类搞一个无参构造,和一个带参构造。

比如来看这个:
 

public class Student {
    String name;
    int age;

    public Student() {
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

我们的带参构造中就很好的体现了this指针的作用,可以区分成员变量和方法参数。

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 杨教授大学堂,版权所有,盗版必究。 1/7 页 《面向对象编程与设计(Java) 》课后作业及参考解答 1.1.1 第一周 课程(9 月 4 日)的课后作业及参考解答 1、 请用 Java 程序示例说明什么是面向过程的程序设计方法、什么是面向对象的程序 设计方法? 面向过程就是分析出所需要开发的应用的系统在解决某个问题时所需要的步骤和工 作流程,然后用代码(当然应该把这些代码设计为各个函数或者过程)来表示这些步骤 的具体实现——面向过程是以过程为中心的编程思想。 而面向对象是把构成问题的各个方面分解成各个对象,并用代码来实现对象之间的 交互——面向对象是以事物为中心的编程思想。 (1)面向过程程序设计方法的示例 #include "stdio.h" int add(int a, int b){ //对数据的操作(方法或者函数) return a+b; } int main(){ //数据(属性或者状态) int x=1, y=1; int sum=add(x,y); print("Sum=%d",sum); } 面向过程程序的程序中的数据与方法是相互分离的!而面向对象程序中的数据与方 法是相互组合在一起的。 当数据(也就是问题的属性或者状态)发生变化,需要修改大量的关联的方法的程 序模块。 (2)面向对象程序设计方法的示例 import java.io.*; public class Add{ 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 杨教授大学堂,版权所有,盗版必究。 2/7 页 //数据(属性或者状态) private int sum; public int add(int a, int b){ //对数据的操作(方法或者函数) sum=a+b; return sum; } public void showSum() { //对数据的操作(方法或者函数) System.out.println("Sum="+sum); } public static void main(String args[]){ Add oneAdd=new Add(); oneAdd.add(1,2); oneAdd.showSum(); } } 2、谈谈你对开源的理解(可以是任何方面的主题) ,你熟悉 J2EE 平台中的哪些开源框 架、对这些开源框架的熟悉程度怎样(包括在项目中的具体应用) (1)开源软件 1) 开源软件一定是源代码开放,任何人可以免费使用,任何人可以再开发; 2) 开源同时也是一种商业运营手段,软件免费提供但服务收费。 3) 开源软件有别于自由软件——自由、免费、公开与分享,许多开源软件有"许 可证"的限制。 (2)J2EE 平台中的哪些开源框架 S2SH——Struts2、Spring 和 Hibernate 等表现层框架、应用层框架和持久层框架。 1.1.2 第二周 课程(9 月 11 日)的课后作业及参考解答 1、请用 Java 程序示例说明什么是 Java 中的静态多态性和动态多态性? (1)静态多态性是指在编译程序代码时,编译器就会根据参数的不同而调用不同的方 杨教授大学堂 精心创作的优秀程序员 职业提升必读系列资料 杨教授大学堂,版权所有,盗版必究。 3/7 页 法,并且跟具体的方法体结合起来,生成最终的程序代码。 实现的具体手段是应用方法重载。 (2)动态多态性是指在编译程序代码时,编译器不会将某一方法体的调用和方法体结 合起来,而是在程序执行过程中根据对象的实际类型选择相应的方法体,再最终生成对 应的程序代码。 实现的具体手段是应用方法重写。 2、软件业一直在探讨,如何使软件实现如同传统产业一样的大规模生产。软件工程的 提出,便是为了实现这个愿望。然而,虽然软件工程至今已经有了很大的发展,软件的 大规模工业化生产仍然没有实现。您认为原因何在? (1)张三同学的解答 软件业不是一个孤立的行业,它具有很大的依附性。它必须依附在计算机硬件上 才能生存,否则无影无踪;它必须依附在各行各业的业务需求中才能发展,否则无人问 津。这种独一无二的依附性决定了软件产业的发展步伐:既不能超前,也不能落伍。 随着计算机硬件技术呈摩尔定律向前发展,以及计算机应用向社会生产和社会生 活的广泛渗透,计算机软件技术必须迎头赶上。为了解决生产率问题,人们提出了面向 对象技术和构件生产;为了解决质量问题,人们提出了软件过程控制和 CMM;为了解决 成本问题,人们提出了软件复用技术。这些原理的提出和技术的应用,极大提高了软件 开发的效率。 但令人遗憾的是软件工程的实践非常令人失望。大量的软件项目不能按照人们的 计划实施和完成,持续了二三十年的软件危机变得更加突出。暮然回首,人们

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值