Java学习笔记----面对对象

最近开始着手整理自己学习的东西,把面向对象整理出来

什么是面向对象?

起初,“面向对象”是专指在程序设计中采用封装、继承、多态等设计方法。
面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。

什么是多态?

在面向对象语言中,接口的多种不同的实现方式即为多态。引用Charlie Calverts对多态的描述——多态性是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作(摘自“Delphi4 编程技术内幕”)。
简而言之,将父类引用指向子类对象

什么是继承?

继承就是继承父类的属性和方法
优点:代码的可重用性;可以拓展父类的属性和方法;

什么是封装?

封装就是封装内部属性,只暴露出部分接口给使用者调用。保证了内部代码的完整性。
一般情况下,我们写好的代码要改动某个属性值的时候,最好是不要去改动源代码,而应该是去调用你一开始写好的方法去改动。所以这就是我理解的封装。

面向对象的优点?

1.容易维护
2.质量高
3.效率高
4.容易扩展

面向对象的缺点?

性能缺失
如果缺乏整体规划,容易导致结构部合理

如何在代码中体现?

package com.ehealth.obj;
class cat{
    public cat(){
        System.out.println("This is a cat.");
    }
    public void call(){
        System.out.println("....");
    }
}
public class objTest {
    public static void main(String[] args) {
        cat c=new cat();
        c.call();
    }
}

this关键字

指向当前对象
this还可以用于调用当前对象的其他构造函数。

static关键字

静态对象,在第一次创建对象的时候进行初始化。属于类的公共区域。

super关键字

在构造函数中使用super,意味着使用父类的构造函数。当没有显示调用的时候,意味着默认调用父类的无参构造函数。如果父类没有无参构造函数,那么将会出错。所有的类都继承与Object这一个类。

继承与权限

继承使用的是extends关键字
public:所有地方都可见
private:所有地方都不可见
protect :子类可见
default::同一个包可见

重载与重写

重载:方法名相同,参数不同
重写:方法名跟参数还有返回类型都必须一样。

时间: 2024-12-13 14:55:07

Java学习笔记----面对对象的相关文章

[Java学习笔记]对象克隆

对象克隆: 浅克隆: 被克隆的对象中的值类型数据被复制一份新值,但是引用的对象只被复制其引用传递给新克隆出来的对象 深克隆: 被克隆的对象中的值类型数据被复制一份新值,并且其中引用的对象会重新创建新的对象,把新对象的引用传递给新克隆出来的对象 Java中实现克隆: Java中Object中定义了clone方法,默认为浅克隆操作,即你只是简单super.clone得到的结果是浅克隆的结果,如果需要深克隆,则需要实现Cloneable接口,并且重写clone方法 查看Java源代码发现Object中

Java学习笔记一:对象与存储

1.用引用来操作对象 Java是面向对象的编程语言,一切都能看作是对象,通过引用来完成对对象的操作. // String 是对象,而s对指向这个String对象的引用 String s; 注意:我们是通过对象的引用来操纵对象数据的,如果对象没有关联数据(如没有被初始化),则会出现空引用,报空指针异常:java.lang.NullPointerException 2.数据存储 (1)寄存器:位于CPU内部,是处理最快的区域,但是存储空间有限.Java不能通过程序直接控制. (2)堆栈:位于RAM(

Java学习笔记3-操作符

Java基本操作符:+.-.*./.%.=.==.!=.+=.-=. 优先级:先乘除后加减,如果是连接符+号会优先往前匹配,比如 a+++++b,会被解释称 a++ ++ +b,所以会报错,需要自行使用括号隔离为 (a++) + (++b). 对象的引用如果赋值给了对象的引用后,2 个对象将指向同一个引用,有一个对象的引用重新赋值后将同时影响到另一个对象,比如 ClassName classA = new ClassName(); ClassName classB = new ClassName

java学习笔记10--泛型总结

java学习笔记系列: java学习笔记9--内部类总结 java学习笔记8--接口总结 java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note10.html,转载

Java学习笔记_25_Collections类

25.Collections类: Collections类是一个工具类,用来对集合进行操作,它主要是提供一些排序算法,包括随机排序.反相排序等. Collections类提供了一些静态方法,实现了基于List容器的一些常用算法. Collections的一些方法列表: · void sort(List): 对List内的元素进行排序. · void shuffle(List): 对List内的元素随机排序. · void reverse(List): 对List内的元素进行逆序排列. · voi

Java学习笔记心得——初识Java

初识Java 拿到这本厚厚的<Java学习笔记>,翻开目录:Java平台概论.从JDK到TDE.认识对象.封装.继承与多态...看着这些似懂非懂的术语名词,心里怀着些好奇与担忧,就这样我开始走进Java的世界.  Java产生的历史 Java来自于Sun公司的一个叫Green Project中撰写的程序语言,全球信息网(World Wide Web)兴起,Java Applet成为网页互动技术的代表,特别适合于Internet应用程序开发. Java语言的特点 1.面向对象 这是Java最重要

java学习笔记8--接口总结

接着前面的学习: java学习笔记7--抽象类与抽象方法 java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--对象的初始化与回收 java学习笔记3--类与对象的基础 java学习笔记2--数据类型.数组 java学习笔记1--开发环境平台总结 本文地址:http://www.cnblogs.com/archimedes/p/java-study-note8.html,转载请注明源地址. 生活中的接口: 什么是接口? 一个Java接口是一些方法特

java学习笔记3——java关键字

java学习笔记3——java关键字 虽然老师说不用刻意的去记忆,但是我还是在网上找到了非常详细的注解,再次收藏 关键字的类型表: 各个关键字的详细注解和实例,按首字母排序: 1.abstract abstract 关键字可以修改类或方法. abstract 类可以扩展(增加子类),但不能直接实例化. abstract 方法不在声明它的类中实现,但必须在某个子类中重写. -示例- public abstract class MyClass{ } public abstract String my

javascript学习笔记---ECMAScriptECMAScript 对象----定义类或对象

使用预定义对象只是面向对象语言的能力的一部分,它真正强大之处在于能够创建自己专用的类和对象. ECMAScript 拥有很多创建对象或类的方法. 原始的方式 因为对象的属性可以在对象创建后动态定义(后绑定),类似下面的代码: var oCar = new Object; oCar.color = "blue"; oCar.doors = 4; oCar.mpg = 25; oCar.showColor = function() { alert(this.color); };不过这里有一