面向对象的三条主线:

一、类及类的成分

1.类与类的关系:

java程序是关注于类的设计。

类从代码的角度:并列关系!

从执行、设计的角度:关联关系、继承关系、聚合关系

class A{

}

class B{

A  a = new A();

}

2.类的成分:属性   方法  构造器  代码块  内部类

2.1 属性:

①变量的分类:成员变量(属性 Field)vs 局部变量(方法的形参、方法内部、代码块内部)

②数据类型:基本数据类型(8种,不同的数据类型对应不同的默认初始化值vs 引用数据类型(数组、类、接口 默认初始化值为null)

③属性的声明格式:修饰符  数据类型  变量名 = 初始化值;//java是强数据类型的语言

④对属性的赋值的操作:默认初始化、显式的初始化、代码块的初始化、构造器的初始化、调用方法或属性进行赋值

2.2 方法  

①格式:修饰符(其它的关键字:static/final/abstract)返回值类型 方法名(形参列表){

//方法体 }

②方法的重载(overload)   vs  方法的重写(override overwrite)

③ 方法的参数传递机制:值传递(难点)

2.3构造器  

①构造器的作用:1.创建类的对象  2.初始化对象的成员变量

②构造器也是可以重载的。

2.4 代码块

①主要作用:用来初始化类的成员变量

②分类:静态的代码块  vs  非静态的代码块

2.5 内部类

①分类:成员内部类(static的成员vs 非static的成员)vs 局部内部类(方法内部声明的类)

②掌握 :如何创建成员内部类的对象(如:创建Bird类和Dog类的对象)、如何区分调用外

部类或内部类的变量(尤其是变量重名时)、局部内部类的使用 (见TestInnerClass1.java)

3. 类的初始化(创建类的对象)

3.1 如何创建类的对象。

如: Person p = new Person();  Date d = new Date();

3.2 内存解析:

①栈:局部变量、对象的引用名、数组的引用名

堆:new 出来的“东西”

方法区:(字符串常量池)

静态域:存放类中静态的变量

②如何理解创建的对象在内存中加载的过程(理解)

3.3 子类对象实例化的全过程: SubClass sc = new SubClass();

二、面向对象的三大特性:

1.封装性:

① 通过私有化类的成员变量,通过公共的getter和setter方法来调用和修改

② 还可以对类的其他结构进行“封装”

③ 权限修饰符:public protected 缺省 private

2.继承性:

①通过让一个类A继承另一个类B,就可以获取类B中的结构(主要的:属性、方法、构造器)。子类:类A  父类:类B

②java中的类的继承性:单继承的。

3.多态性:

①体现:方法的重载与重写;子类对象的多态性  Person p = new Student();

②子类对象多态性的使用:虚拟方法调用。

③向上转型  向下转型 Student s = (Student)p;

//建议在向下转型之前: if ( p instanceof Student)避免出现ClassCastException的异常

三、其它关键字:

1.this:修饰属性、方法、构造器。表示:当前对象或当前正在创建的对象。

2.super:修饰属性、方法、构造器。显式的调用父类的相应的结构,尤其是子父类有重名的方法、属性

3.static :修饰属性、方法、代码块、内部类。随着类的加载而加载!

4.final:修饰类、属性、方法。表示“最终的”

5.abstract:修饰类、方法

6. interface:表示是一个接口,(接口是与类并列的一个结构)。类与接口之间同时“implements”发生关系。

7.package import …

8.abstract:不能修饰属性、构造器、不能与final static private共用。

Java——面向对象知识总结的更多相关文章

  1. java面向对象知识整理(一)

    1.面向对象思想 概述:面向对象是相对于面向过程而言的,面向过程强调的是功能,面向对象强调的是将功能封装进对像,强调具备功能的对象. 特点:(1)符合人们思考习惯的一种思想. (2)将复杂的事情简单化 ...

  2. Java 面向对象知识扩展

    四种权限修饰符 java有四种权限修饰符:public > protected > (default) > private   public protected default pr ...

  3. Java基础知识➣面向对象(八)

    概述 Java和C#都是面向对象语言,面向对象编程是目前高级语言习惯的编程模式,与C++编写过程编程而言,面向对象使用起来高效.灵活:面向对象的三个特征:封装.继承和多态. Java面向对象 1.类封 ...

  4. 如何讲清楚 Java 面向对象的问题与知识?(类与对象,封装,继承,多态,接口,内部类...)

    写在最前面 这个项目是从20年末就立好的 flag,经过几年的学习,回过头再去看很多知识点又有新的理解.所以趁着找实习的准备,结合以前的学习储备,创建一个主要针对应届生和初学者的 Java 开源知识项 ...

  5. Java基础知识_毕向东_Java基础视频教程笔记(5-10 面向对象)

    06天-05-面向对象(帮助文档的制作javadoc):java文档生成命令:javadoc -d filepatn demo.java   -author -version(可选)一个类中默认会有一 ...

  6. Java基础知识(壹)

    写在前面的话 这篇博客,是很早之前自己的学习Java基础知识的,所记录的内容,仅仅是当时学习的一个总结随笔.现在分享出来,希望能帮助大家,如有不足的,希望大家支出. 后续会继续分享基础知识手记.希望能 ...

  7. Java程序设计 实验二 Java面向对象程序设计

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计 班级:1353  姓名:李海空  学号:20135329 成绩:             指导教师:娄嘉鹏 ...

  8. Java面向对象的封装

    封装是Java面向对象的三大特性之一,通常我们是通过包管理机制同时对类进行封装,隐藏其内部实现细节,通常开发中不允许直接操作类中的成员属性,所以属性一般设置为私有权限private,类中一般会给出一些 ...

  9. Java面向对象的三大特征

    Java面向对象的三大特征 java面向对象的三大特征:“封装.继承.多态”.更多Java技术知识,请登陆疯狂软件教育官网.微信搜索微信号:疯狂软件,参加2015年优惠活动,有机会获得优惠劵和代金劵. ...

随机推荐

  1. JS中实现replaceAll的方法

    第一次发现JavaScript中replace() 方法如果直接用str.replace("-","!") 只会替换第一个匹配的字符. 而str.replace ...

  2. 【leetcode】934. Shortest Bridge

    题目如下: In a given 2D binary array A, there are two islands.  (An island is a 4-directionally connecte ...

  3. IPv6时代已来:双十一中的IPv6大规模应用实践

    摘要: 刚刚过去的双十一,大家对猫晚.抢红包.组团购还记忆犹新.大家不了解的是,不知不觉间,你可能已经成为首批互联网IPv6用户了.今年天猫双十一期间,阿里巴巴全面支持了IPv6,这是IPv6在我国的 ...

  4. C#将数据导入到Excel表格中

    public static DataTable GetExcelToDataTableBySheet(string FileFullPath, string SheetName){           ...

  5. AcWing 228. 异或 (dfs+线性基)打卡

    题目:https://www.acwing.com/problem/content/230/ 题意:有一个图,每条边有一个权值,现在求1-n的一条路径的最大异或和,一条边能经过多次,相应的也要计算那么 ...

  6. 前端每日实战:73# 视频演示如何用纯 CSS 创作一只卡通狐狸

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/OEKZed 可交互视频 此视频是可 ...

  7. jquery与其他js冲突

    var $j=JQuery.noConflict(); $j('#msg').hide();//此处$j就代表JQuery //重命名以下,把$改为$j

  8. #define学习

    C语言中数据有常量和变量,其中定义常量主要有两种方法,这里主要学习#define定义常量的方法. 1.#define定义数字宏常量 例子如下: 1 2 3 4 5 6 7 8 9 10 #includ ...

  9. mybatis的sqlprovider用法扩展自定义sql

    SqlProvider使用 public class MemberRewardSqlProvider { private static final Logger log = LoggerFactory ...

  10. CodeForces - 841B-Godsend-思维

    Leha somehow found an array consisting of n integers. Looking at it, he came up with a task. Two pla ...