面向对象:
1、对象:什么都是对象 客观存在,有什么(属性),能做什么(方法)
问题空间和解空间最大限度的统一
符合我们看待客观世界的规律
各司其职(简单)
各尽其能
弱耦合性
可重用性
可扩展性
2、类:对象的抽象,客观对象在人脑中的主观反映。对象的模版
属性:实例变量:默认值 作用范围至少是本类内部 可以和局部变量命名冲突
方法:声明 实现
修饰符 返回值 方法名 参数表 异常
3、重载:(Overload):方法名相同,参数表不同 又叫编译时多态
重载是为了使得对象同类方法由于参数表不同所造成的差异,这个差异对使用者是屏蔽的
向上就近匹配原则(当有多个参数时,选择少提升的参数)(课堂代码:TestOverload.java)
4、构造方法:构造方法可以重载,构造方法是由系统自动调用的
若对一个类没有写构造方法,则构造对象时会自动调用默认的无参的空的构造方法,但要求最好自己写构造方法,不要依赖默认的构造方法
java中没有析构方法,也不允许程序员自己定义析构方法,因为java中有自动垃圾收集器
5、构造对象的过程:1)分配空间(堆空间),根据类中的属性决定分配多大的空间,分配的时候先初始化为0
2)初始化属性(根据给定的值初始化)
3)调用构造方法
6、创建对象格式:类名 对象名=new 类名(参数表)
int a; //简单变量
Student s; //声明一个Student类的对象变量(或称引用)
s = new Student(); //调用Student类的无参的构造方法,创建一个对象,把这个对象的地址赋给一个Student类的引用
(引用指向了这个对象,引用中保存对象的首地址,以后都是通过引用访问这个对象的属性和方法)
s.age s引用指向对象的age属性
7、引用和对象的区别 (课堂代码:TestClass.java)
Student s;只是声明一个引用,不会创建对象
this引用:
两种用法:
1)用来区分实例变量与局部变量的冲突
例:public Student(int age){
this.age=age;
}
2)this();在构造方法里这样写表示调用本类其它的构造方法,必须放在此构造方法的第一行。
方法参数传递规则:(课堂代码:TestParameter.java)
简单类型 :传值,形参和实参各是一个数
对象类型:传引用,形参和实参指向同一个对象
8、面象对象的三大特性:封装,继承,多态
封装:(课堂代码:TestEncapsulation.java)
封装,一个对象和外界的联系应当通过一个统一的接口,应当公开的公开,应当隐藏的隐藏。
(对象的属性应当隐藏),一个对象的内部是透明的,就是把对象内部的可透明性和隐藏的特性区分开,该透明的透明,该隐藏的隐藏。
(封装的属性)java中类的属性的访问权限的默认值不是private,
要想隐藏该属性或方法,就可以加private(私有)修饰符来限制只能够在类的内部进行访问。
对于类中的私有属性,要对其给出一对方法(getXxx(),setXxx())访问私有属性,保证对私有属性的操作的安全性。
方法的封装,对于方法的封装,该公开的公开,该隐藏的隐藏。
方法公开的是方法的声明(定义),即(只须知道参数和返回值就可以调用该方法),隐藏方法的实现会使实现的改变对架构的影响最小化。
封装会使方法实现的改变对架构的影响最小化。
完全的封装,类的属性全部私有化,并且提供一对方法来访问属性。给自己用的方法要隐藏
Java Bean 一种组件规范 --> 所有属性私有,访问方法按照命名规范setXxx(),getXxx()方法
JavaScript只有封装,没有继承和多态
9、继承
继承,是对有着共同特性的多类事物,进行再抽象成一个类。这个类就是多类事物的父类。父类的意义在于可以抽取多类事物的共性。
泛化:把共性从子类中抽取出来。先有子类后有父类叫泛化
特化:先有父类,再有子类的过程。先有父类再有子类叫特化
父类与子类 -> 从一般到特殊的关系
java中的继承要使用extends关键字,并且java中只允许单继承,也就是一个类只能有一个直接的父类。
这样就是继承关系呈树状,体现了java的简单性。
子类只能继承在父类中可以访问的属性和方法(实际上父类中私有的属性和方法也会被继承但子类中无法访问罢了)。
实际上一个子类对象中包含一个父类对象
访问控制修饰符:(可以修饰属性和方法)
private修饰符,表示只有本类内部可以访问,不能继承。
default修饰符,方法不加修饰符,会默认为default,表示在同一个包中可以访问,
父子类在同一包中,子类可以继承父类的相应内容。(可以修饰类)
protected(保护)修饰符,表示同一包中可以访问,不同包的子类也可以访问继承。
public修饰符,表示公开,在任何地方都可以访问,能继承。(可以修饰类)
修饰符的权限是由上而下逐渐变宽的。
继承的意义,就在于子类可以在父类的基础之上对父类的功能进行发展,继承可以使系统的耦合性降低,
也就是使对象间的联系便的松散,使多类对象间的联系用其父类对象代替。
注意:构造方法不能被继承。
父类的属性及方法的确定:要从子类的角度来看子类间的共性,当所有子类都有这个属性时,就应当考虑是否该放在父类中,
方法也是如此,方法可以被看作是对象的行为,而类的方法这时这一类对象所共有的行为,
所以也应当在方法的确定时注意是不是所有的子类型中都需要有这种方法,并且会根据不同的类型的行为的方式也不同才可以覆盖着个方法。
分享到:
相关推荐
### CoreJava学习笔记 #### 一、JAVA特点与运行原理 **JAVA特点:** 1. **简单性**:Java的设计者们将C++语言中许多不易理解和容易混淆的部分去除,使得Java更容易理解与掌握。 2. **面向对象**:Java几乎一切都...
Java是世界上最流行的编程语言之一,...以上就是“达内Core Java学习笔记”中涉及的主要知识点。通过深入学习和实践,初学者可以逐步建立起坚实的Java编程基础,并为进一步学习Java的高级特性和框架打下坚实的基础。
Java是一种广泛使用的面向对象的编程语言,其基础知识构成了"Core Java"的学习内容。在学习Java时,遵循"多花时间、多动手、多问题"的原则至关重要,因为理论理解与实践操作相结合能更好地掌握知识。 1. **Java语法...
### Java学习笔记及心得知识点详细解析 #### 标题:Java学习笔记及心得 #### 描述:Core Java 学习笔记及心得 pdf格式可打开。涵盖了java的基础入门知识,非常适合自学的及想深入学习理解的同学。 #### 标签:...
《Core Java》学习笔记。 我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我还会折返回来进行修改或者添加一些注释。 当然如果你有什么不理解...
Java是一种由Sun Microsystems在1995年推出的高级编程语言,现由Oracle公司维护。...以上就是Core Java学习笔记的主要内容概述,涵盖了从基础语法到高级特性的广泛知识,为深入理解和应用Java打下了坚实的基础。
这篇学习笔记主要讨论了Java集合框架,包括Collection、List、Set和Map四大接口以及它们的相关方法。 首先,Collection是所有集合类的顶级接口,它定义了一些基本的操作,如添加元素(add)、获取元素数量(size)、...
【Java学习笔记全套】是针对Java编程语言的一套全面学习资料,涵盖了Unix操作系统基础、SQL数据库操作、核心Java编程、Hibernate持久化框架、以及Spring框架等多个关键知识点。这些笔记旨在帮助初学者系统地掌握Java...
《CoreJava学习笔记》 Java,作为一种广泛使用的高级编程语言,以其独特的特性和优势深受开发者喜爱。本学习笔记旨在深入浅出地介绍Java的核心概念,帮助初学者快速掌握这一强大的工具。 1. Java特点 Java语法...
在Java编程语言中,SortedSet接口是Set接口的一个子接口,它添加了对集合元素排序的能力。SortedSet接口要求其实现类必须维护元素的排序顺序,这种顺序可以是元素的自然顺序(即元素自身可比较),也可以是通过提供...
### 达内COREJAVA学习笔记知识点详述 #### 一、Java版本与平台概述 - **J2SE**: Java Standard Edition,即Java标准版,针对桌面应用开发。 - **JAVA SE**: 指的是Java SE 5.0,发布于2004年,增加了泛型、枚举等...
CoreJava_day11的学习笔记主要涵盖了集合框架,特别是关于List、Set和Map接口,以及ArrayList、Vector和LinkedList等具体实现类的知识点。 首先,集合框架是用来存放对象的对象,它提供了一组接口和类,使得我们...
(二)面向对象技术总结.pdf (三)corejava高级特性总结 (四)接口学习总结 (五)异常和内部类 (六)集合框架学习总结 (七)GUI和AWT事件模型 (八)多线程学习总结 (九)输入输出流学习总结 (十)网络编程学习总结
在Java编程语言中,继承是面向对象编程的一个关键特性,它允许子类继承父类的属性和方法,从而实现代码的复用和扩展。在Java中,类的继承是单继承的,即一个子类只能有一个直接父类,但可以通过接口实现多继承的效果...
这份"java学习笔记(corejava)部分.rar"文件很显然是针对Java初学者或者希望巩固基础知识的开发者准备的。下面我们将深入探讨Java Core的一些关键知识点。 1. **Java基础**:Java是一种面向对象的编程语言,其设计...
java学习笔记 简介: java 学习笔记。 我把自己的笔记都以注释的形式写在代码里面了,这样方便理解。 尽管有些部分被标记为“已完成”,但实际上以后说不定我还会折返回来进行修改或者添加一些注释。 当然如果你...
自己学习corejava核心技术卷一时的学习笔记和心得,提出的一些问题