编程语言的发展:

    机器语言——直接由计算机的指令组成,指令、地址、数据都是以"0"和"1"的符号串组成,可以被计算机直接执行。

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

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

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

  对于JAVA大家都知道,它是一种面向对象的程序设计思想,那面向对象和面向过程有什么区别呢?举一个例子,比如我要到湖南,面向过程的设计思路:首先我们制定好路线,我要启动汽车,我要挂上档,我要踩下油门,我要握住方向盘,我要按着路线前进。面向对象的设计思路:选择一种交通工具,具体如何到呢?交给交通工具去处理。交通工具制定行驶路线,至此我们就可以上路了。说了这么多,大家一定还有点雾里看花的感觉,面向对象突出类的概念,类包含属性和方法。本篇我们就一起回顾一下JAVA的面向对象设计。

 1、对象和类的概念:

  对象——用计算机语言对问题域中事物的描述,对象通过属性和方法,来分别表示事物所具有静态属性和动态属性。

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

  类可以看做是对象的一种抽象,对象则是类的一个具体实例。

 2、类和对象的创建和使用:(代码实例)

  类:Animail.java

//类的创建
public class Animail {//全局变量private int age;private String name;//添加方法public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}//添加方法public void Print(){static int money = 3000;//成员变量,作用域为该方法域,必须先赋值,后使用System.out.println("一般方法执行了");}/** 构造方法没有返回值* 当没有添加构造方法时,系统默认为类添加一个无参构造方法* 当添加一个有参构造方法后,系统将不再为该类添加无参构造方法*///无参构造方法public Animail(){System.out.println("无参构造方法执行了");}//有参构造方法public Animail(int age){System.out.println("有参构造方法执行了 age="+age);}
}

  对象:test.java

public class Test {/*** @param 类和对象*/public static void main(String[] args) {Animail animail = new Animail();//对象的创建,执行该类的无参构造方法Animail animail2 = new Animail(1);//对象的创建,执行该类的有参构造方法//方法的执行,通过对象名点方法名执行animail.setAge(10);animail.setName("小猫");System.out.println("name="+animail.getName()+"   age="+animail.getAge());animail.Print();}
}

 3、this、static、package、import、访问控制

  this:当前的,当对类中全局变量进行修改时,当参数名与全局变量名一致时,使用this关键字,对当前对象的该属性进行修改。

  static:全局的,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时进行初始化,对于该类的所有多象,static成员变量只有一份。

  package:包,JAVA为了防止用户命名重复时,导致出错,添加了包的概念,包名的命名一般为公司域名的倒叙。

  import:引用,当你需要使用另外一个包内的方法时,就需要使用import关键字,将该包引入进来。

  JAVA的访问控制分为:private(私有的)、默认、protected(不公开的)、public(公开的)

  

 4、继承:

  关键字:extends,继承为何物?比如说,你爸是富豪,你得到了他拥有的资金,这就是继承,JAVA提供的继承为单继承,也就是一个类只能有一个父类。

  代码:父类:

public class Phone {int money;public Phone(){System.out.println("父类的构造方法");}public void sendEMS(){System.out.println("父类发短信方法");}
}

  子类:

public class cellPhone extends Phone {String color;public cellPhone(){System.out.println("子类构造方法");}//子类可以重写父类的方法public void sendEMS(){System.out.println("子类发短信方法");}
}

  测试代码:

public class test {public static void main(String [] args) {//首先执行父类的构造方法,然后执行子类的构造方法Phone phone = new cellPhone();//向上转型//执行子类重写的方法
        phone.sendEMS();}
}

 5、重写:

  方法重写即子类对象可以根据需要对父类方法进行重写定义。

 6、重载:

  方法重载是指一个类中可以定义多个具有相同的名字,但参数不同的多个方法,调用时会根据参数的不同调用不同的方法。

  实例代码:

  方法类:

public class Sum {public void sum(int a, int b){System.out.println("方法一:"+a+"+"+b+"="+(a+b));}public void sum(int a, double b){System.out.println("方法二:"+a+"+"+b+"="+(a+b));}public void sum(double a, int b){System.out.println("方法三:"+a+"+"+b+"="+(a+b));}public void sum(double a, double b){System.out.println("方法四:"+a+"+"+b+"="+(a+b));}}

  测试类:

public class test {/*** @param 方法重载*/public static void main(String[] args) {Sum sun = new Sum();sun.sum(1, 1);sun.sum(1, 1.1);sun.sum(1.1, 1);sun.sum(1.1, 1.1);}
}

6、final、object:

  final:静态的,我们学习C语言时,通过#define count 60,来定义常量,JAVA同样提供了常量的定义方法,就是final关键字,我们只需要在定义变量时添加一个final声明,它就变成了一个常量,常量只能被赋值一次。

  object类是JAVA所有类的父类。

7、多态:

  定义:a、存在继承;b、子类对象对父类方法有重写;c、父类引用指向子类对象 

  对于父类引用指向子类对象,需要注意的是,对象转型时,应使用instanceof关键字

  代码实例:

public class Test {/*** @param 多态*/public static void main(String[] args) {Animail animal = new Dog();//向上转型
//        Dog dog = (Dog)animal;//向下转型时,添加强制类型转换
//        Cat cat = (Cat)animal;//向下转型时容易出现这种错误//为了防止出现上述错误,我们使用instanceof关键字if(animal instanceof Dog){Dog dog = (Dog)animal;}else{System.out.println("animal不是狗");}if(animal instanceof Cat){Cat cat = (Cat)animal;}else{System.out.println("animal不是猫");}}
}

8、抽象类:

  被abstract关键字修饰的类,我们称之为抽象类,被absteract修饰的方法为抽象方法。含有抽象方法的类,必须为抽象类,抽象类必须被继承,抽象方法必须被重写。抽象类不能被实例化,抽象方法只需声明,不需要实现。

 9、接口:

  接口(interface)是抽象方法和常量值的定义的集合,从本质上讲,接口是一种特殊的抽象类。

  代码实例:

  接口:

public interface inter {double PI = 3.14; public void start();public void run();public void stop();
}

  类:

public class test implements inter {public void run() {}public void start() {}public void stop() {}}

  对于JAVASE面向对象的知识就为大家总到此,由于文字描述的局限,如果有不懂的地方可以留言。

转载于:https://www.cnblogs.com/AndroidJotting/p/4334803.html

javase基础复习攻略《三》相关推荐

  1. javase基础复习攻略《六》

    学习JAVA的同学都知道,sun为我们封装了很多常用类,本篇就为大家总结一下我们经常使用的类.上一篇博客一位朋友留言问我String是不是引用数据类型?我通过查找资料发现String属于应用数据类型, ...

  2. javase基础复习攻略《七》

    容器是什么?通俗的讲容器指可以装其它东西的器皿,前面我们提到的数组便是容器的一种,容器的概念在JAVA中便可以理解为用来存储其它对象的器皿.本篇就让我们一起来认识一下JAVA为我们提供的容器类. 1. ...

  3. 计算机考研最后四十天,2021考研最后四十天冲刺复习攻略

    2021考研最后这一冲刺阶段,不仅要对以往学过的知识做强化梳理和查缺补漏,还要集中精力做好英语作文.政治等部分的突击学习.因此,在这个紧要的关头,千万不要吝啬你的付出,一定要把每一项复习任务都要落到实 ...

  4. 考研政治|分析大题复习攻略

    考研政治|分析大题复习攻略 不知道大家有没有听过下面这句话:"考研政治重点在于选择题得分要高,因为大题拉不开差距,大家的分数普遍都是三十几."确实,这句话不错,考研政治要拿高分必须 ...

  5. 2019学硕计算机分数,2019计算机考研408分数要求以及复习攻略?

    2019计算机考研408分数要求以及复习攻略? 2018-05-08 16:49 | 考研集训营 2019考研计算机考研408不同于802的考试,统考408一般难度超级大,许多考过的考生都感觉很难,因 ...

  6. 计算机考研寒假可以做什么,计算机考研寒假复习攻略,边玩边学!

    寒假来了,有的学校已经放假了.19考生可能还不着急复习,但是对于计算机专业考研来说,如果你决定考研,基础还不是很好或者是跨专业,你就须要把考研复习这件事儿放在心上了!又想过好年,又想复习,这份寒假复习 ...

  7. 考研计算机组成原理难度,考研计算机组成原理特点及复习攻略

    摘要: 考研计算机组成原理特点及复习攻略,新东方在线编辑收集整理,为考研考生备考使用,预祝大家考研备考顺利,成功进入梦想的院校. 组成原理内容比较零乱,条理有点繁杂:并且计算机是一个内部运行状态难以直 ...

  8. 计算机专业课考研攻略,考研计算机专业课组成原理特点及复习攻略

    考研复习是一个长期积累的过程,计算机考研复习中,处于复习基础阶段的考生要特别注意依据各科的特点准确把握复习的关键及难点,严格依据最新考纲的规定各个击破,方可为整体的复习打下良好基础,保证后期复习的顺利 ...

  9. 计算机网络期末复习攻略

    计算机网络期末复习攻略 一.名词解释 IP:Internet Protocol 网际互连协议 IPCP:IP Control Protocol IP控制协议 ARP:Address Resolutio ...

最新文章

  1. ubuntu sudoers配置错误
  2. linux系统盘使用率达到100%的问题查找和解决方法
  3. 爷青回!GAN生成的超级马里奥关卡,可以永不通关的那种
  4. 对软件工程与计算机科学之间区别的看法
  5. 【Python】全国气温骤降,Python一键生成御寒指南,助你温暖过冬!!
  6. 计算机应用技术多久退休,Windows 7正式退休 这些解决办法你必须了解
  7. jQuery导入代码片段并绑定事件
  8. c语言 多线程 参数,如何用C语言实现多线程
  9. DOCKER windows 安装Tomcat内容
  10. 解决ssh无密码登录不成功的问题
  11. 误删除 Oracle 数据库数据的恢复方法
  12. android inflater 用法
  13. 51单片机LCD12864程序移植到STM32F103C
  14. 腾讯产品笔试策划+经验​
  15. 北京时间校准 服务器 显示器 标准,纯干货~北京时间校准显示器实用分享
  16. IOS开发之协议和代理
  17. android 网络 adb,Android设备通过网络adb 调试
  18. 7个向上管理技巧,让你的职场一路开挂
  19. 《Loy解说Eureka客户端源码(一)》
  20. 易点易动【设备管理】产品全新上线

热门文章

  1. Javascript 获取浏览器窗口中文档(视口)可用尺寸的方法
  2. Fragment实现的底部导航
  3. Linux下Minigui开发环境的搭建(PC+S3C2440
  4. clojure入门: hello world
  5. STL之七:STL各种容器的使用时机详解
  6. C++程序的内存布局
  7. STM32的FSMC详解
  8. 在QT的LineEdit框中输入特定字符(正则表达式的使用)
  9. 设计模式:模板方法(Template Method Pattern)
  10. linux:文件权限管理