资讯专栏INFORMATION COLUMN

乐字节Java编程语言发展、面向对象和类

lufficc / 1778人阅读

摘要:二面向对象概述面向过程的设计思想和面向对象的设计思想我要吃鱼香肉丝盖饭面向过程我买菜我洗菜我切菜我放水我点火我做饭我炒菜。。。。

大家好,上次我们讲过了乐字节Java编程之方法、调用、重载、递归,接下来我们将会进入到Java封装的内容。Java编程语言发展,面向对象和类。

一、编程语言的发展

机器语言——直接由计算机的指令组成,指令、数据、地址都以“0”和“1”组成:可以被计算机直接识别并执行。

汇编语言——用容易理解和记忆的符号表示指令、数据以及寄存器等,抽象层次很低,程序员需要考虑大量的机器细节。

高级语言——屏蔽了机器细节,提高了语言的抽象层次接近于人的自然语言,60年代出现的结构化编程语言剔除了结构化数据和语句,数据和过程抽象等概念。

面向对象的语言——与以往的各种语言的根本不同是,它的设计出发点就是为了更能直接地描述问题域中客观存在的事物。

语言的发展是朝着人类更容易理解的方向前进。

OOP(Object Oritented Programming)面向对象编程,属于编程的一种通用的思想。OOP使我们的开发变得不再那么复杂,并大大增加了程序的灵活性和扩展性。如果你尚未使用OOP思想来完善你的程序设计,那你真的OUT了。

代码世界中与现实生活中一样,社会需要分工,我们不必描述所有一切事物的制作过程,因为有时,我们只想要这个东西,并不关心它的过程。

二、面向对象概述 2.1 面向过程的设计思想和面向对象的设计思想

我要吃鱼香肉丝盖饭

面向过程:我买菜、我洗菜、我切菜、我放水、我点火、我做饭、我炒菜。。。。

面向对象:找家饭馆,大吼一声“我要吃鱼香肉丝盖饭”

至于饭怎么来的我不管

所有的细节信息都封装在这个饭馆类的内部,我不需要关心里面到底有几道工序

面向过程就是知道一个很NB的人来完成一件事;面向对象就是指导一群人来完成一件很NB的事。

2.2 面向对象的设计思想

面向对象的基本思想是,从现实世界中客观存在的事物出发来构造软件系统,并在系统的构造中尽可能运用人类的自然思维方式。

面向对象更加强调运用人类中日常的思维逻辑中经常采用的思想方法与原则,如抽象、分离、继承、聚合、多态等。

三、对象和类的概念

对象用计算机语言对问题域中事物的描述,对象通过“属性(attribute)”和“方法(method)”。

3.1 类

类是用于描述同一类型的对象的一个抽象的概念,类中定义了这一类对象所具有的静态属性和动态属性。

类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

类,说白了就是归类,就是对同种事物进行抽象,抽出“像”的部分,包含有关事务(对象)动作方式的信息,包括它的名称、属性、方法及所在的场景或联系。

例子:

根据客户的需要,我们来制作一个蛋糕。首先要有一个制作蛋糕的菜谱(类),里面当然要有制作这个蛋糕需要什么原材料(成员属性),还要告诉我们如何去做(成员方法)。

3.2 符合Java的类
public class Cake{
public String shape; // 蛋糕的形状
public int cream; //奶油的量
public int eggs; //鸡蛋的量
public int water; //水的量
public int bakeTime; // 烤制时间
public String others; // 其他配料
// 制作
public void makeCake(){
    System.out.println(“放入” + cream + “的奶油,加入” + eggs+ “鸡蛋…”);
}
}

由此可见:类就是模板,同时是复杂的数据类型

有了上述蛋糕类,还没有拥有一个实实在在的蛋糕(对象),只有当我们照着菜谱上写的,把原材料准备齐全,照着一步一步去做,方可得到这个蛋糕(对象的实例化)

现在我们的高级面点师来了,他知道如何去做:只要有菜谱和材料

class Baker{
    String name;    // 名字
    public Cake makeCake(){
        Cake cake = new Cake();
        cake.shape = “麻将型”;
        cake.cream = 50;
        cake.water = 500;
        cake.eggs = 5;
        cake.bakeTime = 5;
        cake.others = “黄油、糖、水果、颜料”;
        return cake;
}
}
3.3 类(对象)之间的关系

关联关系

继承关系

聚合关系(整体和部分)

实现关系

多态

四、Java与面向对象

对象是Java程序的核心,在Java程序中“万事万物皆对象”。

类是用来创建同一类型的“模板”,在一个类中定义了该类对象所具有的成员变量以及方法

JDK提供了很多类供编程人员使用,编程人员也可以定义自己的类。

成员变量=属性 方法=功能

4.1 Java类的定义

//用class关键字定义一个类,例如
class Person{

// 成员变量
int id;
int age = 20;
// 方法定义
int getAge(){return age;}
void setAge(int i){age = I;}

}
类的定义主要有两方面组成——成员变量和方法

声明成员变量的格式为:

[] type [=defaultValue];

例如: int id; private int age = 20;

声明方法的格式为;

[] ([]){

[]

}

例如:public int getAge(){ return age;}

4.2 成员变量

成员变量可以使用Java语言中任何一种数据类型(包括基本类型和引用类型)

定义成员变量时可以对其初始化,如果不对其初始化,Java使用默认的值对其初始化。

成员变量的作用范围为整个类体

4.3 Java面向对象基本概念

Java语言中除基本类型之外的变量类型都称为引用类型

Java中的对象是通过引用对其操作的。

例如:

Dog dog;

dog = new Dog();

如何在内存中区分类和对象?

类是静态的概念,代码区

对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量)而方法只有一份,执行的时候才占用内存。

4.4 对象的创建和使用

必须使用 new 关键字创建对象,new做三件事:

①会在堆中为相应类型分配空间

②会调用相应的构造方法来初始化对象

③将在堆中开辟的空间的地址返回回来

使用对象(引用).成员变量来引用对象的成员变量。

使用对象(引用).方法(参数列表)来调用对象的方法。

同一类的每个对象有不同的成员变量存储空间。

同一类的每个对象共享该类的方法。

乐字节原创,转载请注册出处。

接下来,小乐会继续讲述Java构造器,引用与内存分析,敬请关注 乐字节

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/75437.html

相关文章

  • 字节Java学习01-Java语言概述及Java发展前景

    摘要:但是,很遗憾,消费类电子产品并没有高速的发展起来,进入蛰伏期的飞速发展无心插柳柳成荫年代中末期,有一个改变世界的大事出现了互联网的爆发式增长。 从这篇文章开始,小乐准备写一整系列的Java学习文章,一步一步带您进入Java的神奇世界! 这是第一篇:Java语言概述以及Java的发展前景 1、SUN公司介绍 SUN公司全称是Stanford University Network. SUN...

    imccl 评论0 收藏0
  • 字节Java反射之三:方法、数组、类加载器和类的生命周期

    摘要:本文承接上一篇乐字节发射之二实例化对象接口与父类修饰符和属性继续讲述反射之三方法数组类加载器一方法获取所有方法包括父类或接口,使用即可。当没有任何引用指向对象时就会被卸载,结束类的生命周期。 本文承接上一篇:乐字节Java发射之二:实例化对象、接口与父类、修饰符和属性 继续讲述Java反射之三:方法、数组、类加载器 一、方法 获取所有方法(包括父类或接口),使用Method即可。sho...

    ChanceWong 评论0 收藏0
  • JavaScript发展史,JavaScript组成和开发工具介绍-字节

    摘要:保持与和的相似性,以便开发人员能很快学会。年,网景公司的布兰登与公司联手开发一个称为的脚本语言。当时微软决定进军浏览器,发布了并搭载了一个的克隆版,叫做。在微软进入后,有种不同的版本同时存在以及。 一、JavaScript简介 JavaScript 是一种具有面向对象能力的、解释型的程序设计语言。更具体一点,它是基于对象和事件驱动并具有相对安全性的客户端脚本语言。它的主要目的是,验证发...

    Heier 评论0 收藏0
  • 字节-Java8核心特性实战之Lambda表达式

    摘要:使用表达式,使得应用变得简洁而紧凑。很多语言等从设计之初就支持表达式。表达式的参数与函数式接口内方法的参数,返回值类型相互对应。更多教程和资料请上腾讯课堂乐字节 showImg(https://segmentfault.com/img/bVbtotg?w=935&h=345); Java8 引入Lambda表达式,允许开发者将函数当成参数传递给某个方法,或者把代码本身当作数据进行处理。...

    Karuru 评论0 收藏0
  • Java网络编程探究|字节

    摘要:换句话说,套接字起到通信端点的作用。单个套接字是一个端点,而一对套接字则构成一个双向通信信道,使非关联进程可以在本地或通过网络进行数据交换。 大家好,我是乐字节小乐,上次给大家讲述了Java中的IO流之输出流|乐字节,本文将会给大家讲述网络编程。 主要内容如下: 网络 网络分层 列表项目 IP位置 端口port 网络编程 showImg(https://segmentfault.c...

    Kahn 评论0 收藏0

发表评论

0条评论

lufficc

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<