• 4.1 特性

  封装,继承,

  多态(编译时:方法的重载,同一个类里面不同方法可以用同一个方法名只是传入参数不同,

     运行时多态:基础类提供一个接口,在编译时只调用基础类的接口,在运行时才确定到底是哪一个子类提供的服务。

  • 4.2 类的定义

  类的基本结构:类声明,成员变量(分为类变量static,实例变量),构造方法,成员方法(临时变量),

  成员方法里面,或者构造函数里面的临时变量名和成员变量同名,需要用this,来显露成员变量,否则在里面调用这个名字默认是临时变量。

  参数传递方式:

  1. 基础类型,传值,会改变调用参数值,以及定义的传入参数值
  2. 引用类型,方法体改变引用地址,new 一个新类型,不会改变调用参数值,定义的传入参数值最终被释放
  3. 引用类型,改变引用地址存储值,会改变调用参数值。

  可变参数:

  (int... nums) ,传入的参数1,2,3,4 可以是不同个数      

  访问控制:访问控制只是针对类,不针对对象。

  This 关键字是为了区分成员变量和局部变量的,

  •   顶级类:当你在其它类的外面声明一个类时,Java就认为该类是一个顶级类。如果你在一个顶级类中声明一个类,并且在该嵌套类的声明前加上static的修饰符,你就得到了一个嵌套顶级类。以下的代码段声明了一个顶级类和一个嵌套顶级类:class TopLevelClass{static class NestedTopLevelClass{}}就象静态的字段和静态的方法一样(也可称为类字段和类方法),一个嵌套的顶级类也是与对象无关的。

警告:一个嵌套顶级类不能访问任何外部类的实例成员(即所有的非静态字段和非静态方法)。      使用嵌套顶级类,你不可以访问外部类的实例字段或者调用该类的实例方法。要访问实例成员,Java支持内部类。内部类和嵌套顶级类相似,不同的地方是你不会在内部内的声明前加上static关键字。我们以下就讨论一下内部类,先从实例内部类开始

  顶级类修饰符缺省。

  • 定义在某个类(或接口,下同)内部的类,称为嵌套类(nested class),相应的,其所在的类称之为该类的外围类(enclosing class)或包裹类。

嵌套类必须要用static修饰,public static class Static{}。不用static修饰的类是一个内部类。

非嵌套类称为顶级类(top-level class),一个 .java 文件中可以有若干个顶级类(含抽象类和接口),但只能有一个被 public 修饰的类,且该类必须和 .java 文件同名。

  • 内部类

  内部类、匿名内部类都可以访问外部类的对象的域,为什么会这样,实际上是因为内部类构造的时候,会把外部类的对象this隐式的作为一个参数传递给内部类的构造方法,这个工作是编译器做的,他会给你内部类所有的构造方法添加这个参数

第四章,java面向对象特性的更多相关文章

  1. 2017-2018-2 20165301 实验四《Java面向对象程序设计》实验报告

    2017-2018-2 20165301 实验四<Java面向对象程序设计>实验报告 一.Android Stuidio的安装测试 实验要求: 参考<Java和Android开发学习 ...

  2. 20155201 实验四《Java面向对象程序设计》实验报告

    20155201 实验四<Java面向对象程序设计>实验报告 一.实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局 ...

  3. 20155217 实验四《Java面向对象程序设计》实验报告

    20155217 实验四<Java面向对象程序设计>实验报告 一.实验内容 1.基于Android Studio开发简单的Android应用并部署测试; 2.了解Android.组件.布局 ...

  4. JAVA基础第二章-java三大特性:封装、继承、多态

    业内经常说的一句话是不要重复造轮子,但是有时候,只有自己造一个轮子了,才会深刻明白什么样的轮子适合山路,什么样的轮子适合平地! 我将会持续更新java基础知识,欢迎关注. 往期章节: JAVA基础第一 ...

  5. JavaSE学习总结(四)——Java面向对象十分钟入门

    面向对象编程(Object Oriented Programming,OOP)是一种计算机模拟人类的自然思维方式的编程架构技术,解决了传统结构化开发方法中客观世界描述工具与软件结构的不一致性问题.Ja ...

  6. 2062326 齐力锋 实验四《Java面向对象程序设计Android开发》实验报告

    北京电子科技学院(BESTI) 实 验 报 告 课程: 程序设计与数据结构  班级: 1623  姓名: 齐力锋 学号: 20162326 成绩: 指导教师: 娄嘉鹏/王志强 实验日期: 2017年5 ...

  7. Java面向对象特性总结

    1.面对对象与面对过程的区别 什么是封装?我看到过这样一个例子: 我要用洗衣机洗衣服,只需要按一下开关和洗涤模式就可以了.有必要了解洗衣机内 部的结构吗?有必要碰电动机吗?有必要了解如何通电的吗? 如 ...

  8. Java面向对象特性--多态

    Java是一种面向对象的编程语言,面向对象的三大特性就是继承,封装,多态.下面细细说一说多态. 多态的定义:一个事物的多种形态,指允许不同类的对象对同一消息做出响应.即同一消息可以根据发送对象的不同而 ...

  9. 四、java面向对象编程_2

    目录 六.对象的创建和使用 七.this关键字 八.static关键字 九.package和import语句 十.类的继承 十一.访问控制 十二.方法的重写 十三.super关键字 十四.继承中的构造 ...

随机推荐

  1. 【C++ const_cast强制转换】

  2. Djang的model创建的字段和参数复习

    class test_orm(models.Model): id = models.AutoField(primary_key=True) # int自增列,必须填入参数primary_key=Tru ...

  3. easyui datagrid 三层嵌套

    代码: function local(role,region,ip){ $("#roleList").datagrid({ // title:'服务器监控列表', height:( ...

  4. MD5加密和sha加密

    sha加密原理Algorithm)又叫安全哈希加密技术,是当今世界最先近的加密算法.主要用于文件身份识别.数字签名和口令加密等. 对于明文信息A,通过SHA1算法,生成一条160位长的识别码B.且明文 ...

  5. ELK日志系统:Filebeat使用及Kibana如何设置登录认证(转)

    原文地址:http://www.cnblogs.com/yjmyzz/p/filebeat-turorial-and-kibana-login-setting-with-nginx.html 根据el ...

  6. mongodb导入csv结构化数据

    csv数据样本 "103238704","","-jmyuncker@aol.com-","-r4Vp5iL2VbM=-" ...

  7. linux操作系统-两台linux服务器SSH免密码登录

    A为本地主机(即用于控制其他主机的机器) ; B为远程主机(即被控制的机器Server), ip为192.168.100.247 ; A和B的系统都是Linux   在A上的命令 # ssh-keyg ...

  8. 1.maven安装配置

    这段时间在做项目构建管理方面的工作,以前很多项目都是通过ant去构建的,虽然很早就接触过mavan,但是从没有系统的去学习过, 现在项目需要用maven来构建,我结合自己的心得整理一下放在博客上作为自 ...

  9. json与字符串转换

    一.json转为字符串 JSON.stringify(...) 二.字符串转为json JSON.parse(...)

  10. Eclipse中的maven项目搭建

    一.eclipse中的maven设置 1.打开“首选项”----> "maven"---->"Installations".用来查看maven的使用 ...