面向对象:

从现实世界中客观存在的事物(对象)出发构造软件系统,并在软件系统构造中运用人类的自然思维方式,强调直接以现实世界中的事物为中心来思考,认识问题,并根据这些事务的本质特点,将他们抽象为系统中的类,作为系统的基本单元,这使得软件系统中的组件直接映像到客观世界,并保持客观世界中事物及其相互关系的本来面貌。

类和对象:

类是对一类事物的抽象,是对一类事物共同特征的概括描述,是构造具体实例的模板。

对象是由类构造出来的一个具体的实例,是对类的实例化,具体化,特殊化。

static:

可以用来修饰成员变量,方法,初始化块,用static修饰的成员都是属于类的,如类方法,类变量,类内部类,类初始化块,它们不依赖(属于)与具体的实例。但是调用它们时既可以用类(推荐)也可以用实例(对象),没用static修饰的成员只能用实例来调用。

用static修饰的成员变量称为类变量,随着类的加载而被初始化,一般用来描述此类事物共同的状态,如人眼睛的个数为2,可以定义为类变量static int eyeNum = 2

用static修饰的方法称为静态方法,静态方法可以在静态方法中调用(推荐),也可以在普通方法中调用;但是普通方法只能在普通方法中调用,不能再静态方法中调用。

引用与对象

用类声明的变量称为引用变量,引用变量类似于C语言中的指针(引用变量存储的就是存储对象的地址),引用变量指向所引用的对象,引用变量存储在栈内存中,所引用的对象存储于堆内存中,在java中数组也是作为对象存在。

this

this出现于类中的两个位置,根据所出现位置的不同,具有不同的作用:

this出现在方法(普通)中,this引用调用此方法的对象,使用形式为this.xxx(…),在使用时this一般省略,类可以调用静态方法,若是静态方法中调用了普通方法(相当于this.xxx(…))此时this无法指向具体的实例而发生错误,这就是静态成员不能访问非静态成员的原因。

this出现在构造器中,this引用该构造器正在初始化的对象,使用形式为this(…)

方法

java中方法里的参数传递方式只有值传递一种;

形参个数可变的方法:在最后一个形参类型的后面增加三点,(如,xxx(int a,String… books))本质就是一个数组类型的形参,因此调用形参个数可变的方法时,可以传入多个参试或一个数组;如果参数类型是一个数组时,调用时只能传入一个数组。

方法重载,重载的条件:方法名相同,调用者相同(同属于一个类),参数列表不同,系统根据参数列表的不同调用对应的方法。(从编译层面设置的)

疯狂java学习笔记的更多相关文章

  1. 【疯狂Java学习笔记】【理解面向对象】

    [学习笔记]1.Java语言是纯粹的面向对象语言,这体现在Java完全支持面向对象的三大基本特征:封装.继承.多态.抽象也是面向对象的重要组成部分,不过它不是面向对象的特征之一,因为所有的编程语言都需 ...

  2. 【疯狂Java学习笔记】【第一章:Java语言概述】

    [学习笔记]1.Java与C#的异同:Java与C#的相同之处有很多,它们均摒弃了C++面向对象的多继承.宏定义.全局变量.全局函数.指针等等难以使用的机制,添加进了成熟的机制,如垃圾回收.接口等等. ...

  3. 疯狂java学习笔记之面向对象(八) - static和final

    一.static: 1.static是一个标识符: - 有static修饰的成员表明该成员是属于类的; - 没有static修饰的成员表明该成员是属于实例/对象的. 2.static修饰的成员(Fie ...

  4. 疯狂Java学习笔记(84)----------大约 Java 对象序列化,你不知道 5 事

    几年前,.当一个软件团队一起用 Java 书面申请.我认识比一般程序猿多知道一点关于 Java 对象序列化的知识所带来的优点. 关于本系列 您认为自己懂 Java 编程?其实,大多数程序猿对于 Jav ...

  5. 疯狂Java学习笔记(70)-----------挚爱Java

    与大家分享! 挚爱Java 10个使用Java最广泛的现实领域 写好Java代码的30条经验总结 Java字符串的substring真的会引起内存泄露么? Java内存的原型及工作原理深度剖析 Jav ...

  6. 疯狂java学习笔记之面向对象(六) - 构造器重载、方法重载和方法重写

    一.方法重载(Overload): Java允许同一个类中定义多个同名方法,只要形参不一样就可以,如果同一个类中包含了两个或两个以上方法名相同的方法,但形参列表不同,则被成为方法重载(两同一异). 同 ...

  7. 疯狂java学习笔记之面向对象(五) - 封装、继承、多态

    一.封装: 封装的概念: - 合理的隐藏:隐藏不想被外界操作的Field.方法.构造器 - 合理的暴露:一般就是希望给别人调用的方法 e.g:显示器(按键暴露出来操作,但实际的东西/细节方法被隐藏起来 ...

  8. 疯狂java学习笔记之面向对象(四) - this关键字

    Java中this关键字主要有以下两个方法: 1.this引用 - 可用于任何非static修饰的方法和构造器中,当this用于方法中时,它代表调用该方法的实例/对象;当this用于构造器中时,它代表 ...

  9. 疯狂java学习笔记之面向对象(三) - 方法所属性和值传递

    方法的所属性: 从语法的角度来看:方法必须定义在类中 方法要么属于类本身(static修饰),要么属于实例 -- 到底是属于类还是属于对象? 有无static修饰 调用方法时:必须有主调对象(主语,调 ...

  10. 疯狂java学习笔记之面向对象(二) - 成员变量与局部变量

    Java变量按其作用域可分为:成员变量和局部变量.注意:在Java中是没有全局变量这个概念的 一.成员变量: 成员变量是在类中定义的变量,具体可分为类变量与实例变量--有无static修饰 实例变量的 ...

随机推荐

  1. 团队Beta阶段事后分析

    团队Beta阶段事后分析 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件要解决用户的休闲娱乐问题,为用户提供好玩的模拟经营类的游戏,游戏主题 ...

  2. Python中对变量是否为None的判断

    三种主要的写法有: 第一种:if X is None; 第二种:if not X: 当X为None,  False, 空字符串"", 0, 空列表[], 空字典{}, 空元组()这 ...

  3. 工具函数:cookie的添加、获取、删除

    cookie是浏览器存储的命名数据,作用是保存用户的信息,这样我们就可以用这些信息来做一些事了,但是cookie容量很小,只有4kb. 下面是我总结的cookie的添加.获取.删除的函数: cooki ...

  4. [CLR via C#]引用类型和值类型

    一.引用类型与值类型的区别 CLR支持两种类型:引用类型和值类型.引用类型总是从托管堆上分配的,C#的new操作符会返回对象的内存地址.使用引用类型时,必须注意到一些性能问题. 1)内存必须从托管堆上 ...

  5. 探讨C++实现一个不可被继承的类

    C#和Java都提供了一种机制让一个类不能被继承,如C#中的sealed关键字和Java的final关键字,然而C++程序员就没这么好命了.不过C++也可以模拟出这种效果,原理基于:子类的构造函数会自 ...

  6. shit antd & Merry Christmas bug

    shit antd & Merry Christmas bug https://github.com/ant-design/ant-design/issues/13098 antd 玩大了? ...

  7. linux 环境变量配置(node)

    控制台 env 查看当前的环境变量配置 修改/etc/profile文件,在末尾添加以下内容 export NODE_HOME=/usr/local/node //Node所在路径 export PA ...

  8. WPF数据视图学习

    当你绑定集合到ItemsControl,数据视图被安静地在幕后创造.视图位于数据源和绑定控件之间.数据视图是通往数据源的一个窗口.它跟踪当前项目,它支持诸如排序,过滤,和分组特征.这些特征独立于数据对 ...

  9. windows 2008 iis7 上传大文件限制的真正解决办法

    以前做了一个网站 ,当时本机测试时上传文件大小没有问题,上G也应该可以,可是放在服务器后只能上传小于30M以下文件,当时基本需要也基本在30M以下,就没有管,后在网上发现原来是window2008本身 ...

  10. 窗口中各模块的切换效果,使用jquery实现

    用到了两个js库,请自行下载,用到的背景图片可任意图片都可以,主要是看效果 <!DOCTYPE html> <html> <head> <script src ...