面向对象总结
面向对象考虑的问题
1、不考虑过程、先考虑哪些对象
2、类和对象有哪些属性和方法
3、类之间的关系
Dog d = new Dog()
对象d的引用放在栈内存中
对象d的属性和方法堆内存(动态)
成员变量放在内存中的数据区
局部变量占用一块内存(即栈内存),方法调用完后,局部变量消失
new对象占用两块内存(即栈内存和堆内存)
成员变量有默认值,作用范围是整个类;局部变量没有默认值,作用范围是整个方法
方法就是一块静态代码,只有在执行的时候,才内存里分配空间;非静态方法是针对每个对象进行调用的
《方法的重载》
方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法。
(与方法的访问控制修饰符无关)
(返回类型要一致,其它条件成立,返回类型不一致时构成重名,此时编译不通过)
调用时,会根据不同的参数表选择相应的方法。
《this关键字》
当必须指出当前使用方法的对象是谁时要使用this;
有时使用this可以处理方法中成员变量和参数重名的情况;
this可以看作是一个变量,它的值是当前对象的引用。
《static关键字》(静态变量存放在内存的数据区)
·在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,
对于该类的所有对象来说,static成员变量只有一份。
·用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。
·可以通过对象引用或类名(不需要实例化)访问静态成员。
《package和import语句》
·为便于管理大型软件系统中数目众多的类,解决类的命名冲突问题,Java引入包(package)机制,提供类的多重类命名空间。
《J2SDK中主要的包介绍》
·java.lang--包含一些java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。
·java.awt--包含了构成抽象窗口工具集的多个类。
·java.applet--包含applet运行所需的一些类。
·java.net--包含执行与网络相关的操作的类。
·java.io--包含能提供多种输入/输出功能的类。
·java.util--包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。
《访问控制》
修饰符 类内部 同一个包 子类 任何地方
private yes
default yes yes
protected yes yes yes
public yes yes yes yes
(对于class的权限修饰符只可以用public和default,public类可以再任意地方被访问,default类只可以被同一个包内部的类访问)
《继承》
java中使用extends关键字实现类的继承机制;通过继承,子类自动拥有了基类(superclass)的所有成员(成员变量和方法);
java只支持单继承,不允许多继承:一个子类只能有一个基类,一个基类可以派生出多个子类。
《方法的重写》
在子类中可以根据需要对从基类中继承来的方法进行重写;
重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型;
重写方法不能使用比被重写方法更严格的访问权限。
《继承中的构造方法》
子类的构造的过程中必须调用其基类的构造方法。
子类可以在自己的构造方法中使用super(argument_list)调用基类的构造方法。
·使用this(argument_list)调用本类的另外的构造方法;
·如果调用super,必须写在子类构造方法的第一行。
如果子类的构造方法中没有显式地调用基类构造方法,则系统默认调用基类无参数的构造方法。
如果子类构造方法中既没有显式调用基类构造方法,而基类中又没有无参数的构造方法,则编译出错。
《Object类中的equals》
提供定义对象是否“相等”的逻辑;
x.equals(y)当x和y是同一对象时返回true否则返回false;
即,对于任何非空引用值 x 和 y,当且仅当 x 和 y 引用同一个对象时,此方法才返回 true(x == y 具有值 true)。
“==”比较的是对象的地址;也就是说Object中equals和“==”是一样的。
《对象转型》
·一个基类的引用类型变量可以“指向”其子类的对象;
·一个基类的引用不可以访问其子类对象新增加的成员(属性和方法);
·可以使用引用变量instanceof类名来判断该引用型变量所“指向”的对象是否属于该类或该类的子类;
·子类的对象可以当作基类的对象来使用称作向上转型(upcasting),反之称为向下转型(downcasting);
·多态的条件:1、要有继承;2、要用重写;3、父类引用指向子类对象。
分享到:
相关推荐
Java面向对象编程是Java语言的核心特性,它使得代码更加模块化、可维护,易于扩展。以下是对Java面向对象主要知识点的详细阐述: 1. **对象和类**:在Java中,一切皆为对象,对象是类的实例。类是创建对象的模板,...
java面向对象笔记.pdf
在"达内JAVA面向对象笔记"中,我们可以深入理解这一关键主题。面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它将程序设计为相互协作的对象集合,每个对象都有自己的属性(数据)和行为...
在"java面向对象笔记源码"中,我们可以预期学习到以下几个关键知识点: 1. **类与对象**:类是创建对象的模板,描述了对象的属性和行为。对象是类的实例,它具有类所定义的属性和方法。在Java中,我们使用`class`...
本篇笔记阐述了Java中面向对象的核心概念:类作为创建对象的模板,封装通过private关键字实现数据隐藏及getter/setter方法访问控制;继承允许子类扩展和重用父类属性与方法;多态性体现为一个接口或父类在不同子类中...
Java面向对象笔记 面向对象是一种编程思想,Java是一种面向对象的编程语言。下面是Java面向对象笔记的知识点摘要: 一、类和对象 * 对象:对象是一个实体,由一组属性和方法构成。对象的属性是对象具有的各种特征...
Java面向对象编程笔记 本文主要介绍了Java面向对象编程的基本概念和原则,包括对象、类、继承、多态、封装、抽象等概念的定义和解释,并通过实例讲解了面向对象编程的思想和方法。 一、什么是对象? 在面向对象...
Java面向对象编程是Java语言的核心特性,它基于面向对象编程...这些笔记涵盖了Java面向对象编程的基本概念,对于初学者来说,是理解和掌握Java技术的关键。通过深入学习和实践,可以构建出高效、可维护的Java应用程序。
Java面向对象思想与程序设计电子笔记(刘彦君版),帮助Java学习者从入门走向精通。这是个很高的目标,非常具有挑战性,本笔记就是融合初学者学习的困难,将抽象困难理解的Java入门变得简单易懂,方便初学者跨入Java...
面向对象编程是Java的核心特性,它使得代码更加模块化、可维护性和可扩展性更强。在Java中,万物皆对象,即所有的事物都可以抽象成一个对象,对象包含其属性(描述对象的状态)和方法(描述对象的行为)。面向对象...
"Java面向对象编程学习笔记.pdf" Java面向对象编程学习笔记是Java程序设计语言中面向对象编程(Object-Oriented Programming,OOP)的一份学习笔记。面向对象编程是一种软件设计方法,它强调使用对象和类来模拟现实...
### JAVA面向对象基础总结 #### 一、面向对象的基本概念 面向对象编程(Object-Oriented Programming, OOP)是一种程序设计范式,它将数据和处理这些数据的方法组织在一起,形成一个整体——对象(Object)。Java...
"Java面向对象程序设计笔记" 本文档是关于Java面向对象程序设计的笔记,主要涵盖Java语言的基础知识和面向对象程序设计的基本概念。 从目录来看,本文档共分为两章。第一章主要介绍Java语言的基础知识,包括Java的...
Java面向对象编程是Java开发中的核心概念,由孙卫琴老师讲解的这门课程深入浅出地探讨了这一主题。面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式,它以对象为中心,通过封装、继承和多态三大...
《JAVA面向对象编程》是孙卫琴老师的一本经典教程,涵盖了Java编程的核心概念和实践技巧,特别是面向对象编程的精髓。以下是对这些文件内容的详细解析: 首先,"JAVA面向对象编程(孙卫琴)_1java的第一个程序.doc...
### JAVA基础-面向对象课程笔记 #### 面向过程与面向对象对比 **面向过程**是一种编程思想,它的核心是“做什么事”的步骤。例如,处理“把大象放进冰箱”这个问题时,按照面向过程的思路,我们会将其分解为三个...
Java面向对象程序设计是编程领域的核心概念,尤其对于Java开发者来说,掌握这一技术至关重要。本笔记将深入探讨Java语言的特点、面向对象编程的基本概念、Java应用程序的开发环境配置,以及类的设计、对象构造等关键...
面向对象是Java编程的核心概念,它是现代软件开发中的一种重要思想。李刚老师的《疯狂java讲义》深入浅出地讲解了这一主题,对于初学者来说,是一本...通过不断练习和解决问题,你的Java面向对象编程技能将会日益精进。