从今天开始,温习一下JAVA,为什么要选择JAVA语言

----------------------------------------  android培训 java培训 、期待与您交流! ------------------------------------

java是跨平台语言,什么是跨平台语言,就是不仅可以在windows操作系统运行,还可以在linux操作系统上运行,一次编写,到处运行。他运行在虚拟机上,windows执行的.EXE文件,java执行的.class文件,java语言简单,开源,而且是面向对象语言,而且他还有自己的垃圾回收器,不用考虑内存的问题。而且不像C++复杂,不仅要考虑指针还要考虑内存,Java支持多线程。

       Java的核心思想体现在面向对象:

首先说说我所理解的面向对象,JAVA中万物都是对象,因为所有的类都继承Object,面向对象的核心思想体现在简单,你想要做什么事情,C++的是面向过程语言,

面向过程主要强调的行为动作;

面向对象主要强调的是对象实例;

对象将过程封装。我们从行动者变成指挥者。

比如说你想让贪官去吃屎,

咱们可以建立一个贪官的对象(实例)

1. 贪官  贪官1 = new 贪官(),

然后里面有一个吃屎的动作(方法,函数都行) ;

2.贪官1.吃屎();

但是这样没有扩展性,因为人们不仅讨厌贪官还讨厌城管啊专家啊,而且上面这个贪官也没有名字,也没有性别,上面都没有,因为贪官也是人嘛!我们可以创建一个Person对象,然后里面有name,age,sex这些属性,我们将这些属性进行封装,作用域为private(外部无法访问,只有本类可以访问),为了让外部修改或读取属性的信息,我们对外提供get,set方法,然后创建Person的构造方法,构造方法这个东西特别的实用:

public Person(String name,int age,String sex){

this.name= name;

this.age = age;

this.sex =sex;

}

这样我们在实例化一个对象的时候就不需要.set方法设置Person的属性了,这样减少了很多代码量。

我们把贪官啊城管啊什么的继承(extends)Person,这样我们实例化对象就可以直接在构造贪官的时候这样写:

了方面我们打印,我直接在Person类中重写了Object的toString(),因为所有的类都继承Object嘛


我们现在举一反三,既然这里提到了重写,首先重写的必要条件就是有继承,贪官现在继承了Person,我们现在在Person类中添加一个eat()方法,public void eat(){};我们不需要返回值,然后贪官重写了eat()方法;打印的是今天吃的鲍鱼。

现在我们贪官类中没有吃屎的方法,因为大多数人都不应该吃屎,我们不应该在Person添加吃屎的方法然后让贪官重写,既然可以,我们可以定义一个接口(Interface)或者抽象类(abstract),里面定义一个吃屎的方法,然后让贪官去实现(implements)这个接口,重写这个方法。

这里提到了抽象类和接口我就说说他们的区别:

1.接口需要被实现,抽象类需要被继承,这句话的一件间接地表达了如果我们要实现多继承可以使用接口,扩展性强

     2.接口中所有的方法都是抽象的,而抽象类中可以有普通方法,意思就是接口的方法需要全部实现,而抽象类只需要实现抽象方法就行。

     3.接口中所有的成员变量(属性变量)都是static final的,而抽象类中可以有成员变量。

     4.接口不能有构造方法,抽象类可以有构造方法。

     

面向对象的三大特征

封装:把属于一个对象的属性特征包装到一个类中,然后对外提供访问接口(方法)。打个比方,电脑的USB插口,可以插鼠标,键盘,U盘啊之类的,就相当于我们的鼠标,键盘,U盘都实现了我们电脑这个接口USB的方法。

继承:说的简单点,就是提高重用性,减少代码量,不过建议大家优先使用组合,因为继承太多了,关系复杂,不易于维护。

多态:多态我认为是面向对象中最有意思的了,首先说说多态的必要条件,必须要有继承或者实现接口,重写接口里的方法,父类引用指向子类引用,然后调用接口中的方法。Java中处处存在多态,比如:

             //父类引用指向子类对象

             List  list = new ArrayList();

             //这里Iterator是个接口,list.iterator()返回的是一个接口,就说明了ArrayList实现了这个接口

             看过源码的朋友都知道其实ArrayList的父类AbstractList实现了这个接口,面向对象真是神奇无比啊!

             简单点的意思就是iterator it = new AbstractList();

             Iterator it = list.iterator();


这里面全是我的理解,我这个人是想到什么说什么的,也许有点乱,希望大家可以给出一些批评和建议,我一定会虚心接受。

---------------------------------------- android培训java培训、期待与您交流! ------------------------------------


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值