马士兵 java 学习笔记_马士兵java教程笔记1
---恢复内容开始---
前记
虽然已经是个研究生了,但是会的东西还是特别的少 甚至连java都不能说是很会 所以准备从现在开始能好好的学习java 变成java master
标识符
标识符是由字母、_、$或数字组成
标识符应以字母、下划线、$开头(不能以数字开头)
java标识符大小写敏感,长度无限制
java变量
变量本质上是内存中的一小块区域,使用变量名来访问这块区域。每个变量使用前必须要先申 ,然后必须进行赋值,才能使用
double d1,d2,d3 = 0.123;//只有d3是0.123
方法的作用域:出了大括号 没人认识了
面向对象部分
类和对象:类可以看成一类对象的模板,对象可以看成该类的一个具体实例
关联关系:一个类的方法参数是另一个类的对象 (最弱的关系)
继承关系:xx是一种xx(一般和特殊)
聚合关系:(整体和部分)聚集 、组合(更严格,密不可分)
实现关系:
应该有 多少个类多少个对象-》这些类和对象里有多少属性和方法-》类和类之间的关系
定义成员变量时可以对其初始化,如不对其进行初始化,java使用默认的值对其进行初始化
java语言中除基本类型之外的类型都称为引用类型,引用类型占两块内存,一块是地址,另一块是new出来的东西 放在堆内存里
如何在内存中区分 类 和 对象:
类是静态的概念,位于代码区
对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量)
构造方法
使用new+构造方法 创建一个新对象;当没有制定构造函数时,编译器为类自动添加形如 类名(){}的构造函数
this
在类的方法定义中使用的this关键字代表使用该方法的对象的引用
当必须指出当前使用方法的对象是谁时要使用this
有时使用this可以处理方法中成员变量和参数重名的情况
this可以看作是一个变量,它的值是当前对象的引用
static 关键字
在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员共享
用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给他,所以在static方法中不可访问非static的成员
静态方法不再是针对某个对象调用,所以不能访问非静态成员
可以通过对象引用或类名访问静态成员
Java权限修饰符public protected private置于类的成员定义前,用来限定其他对象对该类对象成员的访问权限
修饰符
类内部
同一个包
子类
任何地方
Private
y
Default
Y
y
Protected
Y
y
y
Public
Y
y
y
y
继承能把父类所有的东西都继承下来,但是 private和default不能访问
对于class的权限修饰只可以用public和default
Public类可以在任意地方被访问
Default类只可以被同一个包内部的类访问
类的继承与权限控制
Java中使用extends关键字实现类的继承机制 (xx是一种xx)
通过继承,子类自动拥有了基类的所有成员(成员变量和方法)
Java只支持单继承,不允许多继承(一个子类只能有一个基类 一个基类可以派出多个子类)
方法的重写 overwrite
在子类中可以根据需要对从基类中继承来的方法进行重写
重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型
重写方法不能使用比被重写方法更严格的访问权限
---恢复内容结束---
前记
虽然已经是个研究生了,但是会的东西还是特别的少 甚至连java都不能说是很会 所以准备从现在开始能好好的学习java 变成java master
标识符
标识符是由字母、_、$或数字组成
标识符应以字母、下划线、$开头(不能以数字开头)
java标识符大小写敏感,长度无限制
java变量
变量本质上是内存中的一小块区域,使用变量名来访问这块区域。每个变量使用前必须要先申 ,然后必须进行赋值,才能使用
double d1,d2,d3 = 0.123;//只有d3是0.123
方法的作用域:出了大括号 没人认识了
面向对象部分
类和对象:类可以看成一类对象的模板,对象可以看成该类的一个具体实例
关联关系:一个类的方法参数是另一个类的对象 (最弱的关系)
继承关系:xx是一种xx(一般和特殊)
聚合关系:(整体和部分)聚集 、组合(更严格,密不可分)
实现关系:
应该有 多少个类多少个对象-》这些类和对象里有多少属性和方法-》类和类之间的关系
定义成员变量时可以对其初始化,如不对其进行初始化,java使用默认的值对其进行初始化
Java权限修饰符public protected private置于类的成员定义前,用来限定其他对象对该类对象成员的访问权限
修饰符
类内部
同一个包
子类
任何地方
Private
y
Default
Y
y
Protected
Y
y
y
Public
Y
y
y
y
继承能把父类所有的东西都继承下来,但是 private和default不能访问
对于class的权限修饰只可以用public和default
Public类可以在任意地方被访问
Default类只可以被同一个包内部的类访问
类的继承与权限控制
Java中使用extends关键字实现类的继承机制 (xx是一种xx)
通过继承,子类自动拥有了基类的所有成员(成员变量和方法)
Java只支持单继承,不允许多继承(一个子类只能有一个基类 一个基类可以派出多个子类)
方法的重写 overwrite
在子类中可以根据需要对从基类中继承来的方法进行重写
重写方法必须和被重写方法具有相同方法名称、参数列表和返回类型
重写方法不能使用比被重写方法更严格的访问权限
java语言中除基本类型之外的类型都称为引用类型,引用类型占两块内存,一块是地址,另一块是new出来的东西 放在堆内存里
如何在内存中区分 类 和 对象:
类是静态的概念,位于代码区
对象是new出来的,位于堆内存,类的每个成员变量在不同的对象中都有不同的值(除了静态变量)
构造方法
使用new+构造方法 创建一个新对象;当没有制定构造函数时,编译器为类自动添加形如 类名(){}的构造函数
this
在类的方法定义中使用的this关键字代表使用该方法的对象的引用
当必须指出当前使用方法的对象是谁时要使用this
有时使用this可以处理方法中成员变量和参数重名的情况
this可以看作是一个变量,它的值是当前对象的引用
static 关键字
在类中,用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时被初始化,对于该类的所有对象来说,static成员共享
用static声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给他,所以在static方法中不可访问非static的成员
静态方法不再是针对某个对象调用,所以不能访问非静态成员
可以通过对象引用或类名访问静态成员
super
1)super(参数):调用基类中的某一个构造函数(应该为构造函数中的第一条语句)
2)this(参数):调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)
3)super: 它引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)
4)this:它代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)
5)调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。
6)super()和this()类似,区别是,super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。
7)super()和this()均需放在构造方法内第一行。
8)尽管可以用this调用一个构造器,但却不能调用两个。
9)this和super不能同时出现在一个构造函数里面,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过。
10)this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块
11)从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。
Object
equals()
getclass()
hashcode() 返回hash编码
toString() public String toString()方法,其返回值是String类型;在进行String与其他类型数据的连接操作时,将自动调用该对象类的toString()方法;可以根据需要重写toString()方法
equals
object类中定义有:
public boolean equals(Object obj)方法 提供定义对象是否相等的逻辑
Object的equals方法定义为:x.equals(y)当x和y所引用的对象是同一类对象且属性内容相等时,返回true否则返回false
J2SDK提供的一些类,如String,Date等,重写了Object的equals方法
对象转型(casting)
一个基类的引用类型变量可以指向其子类的对象
一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)
可以使用引用变量instanceof类名来判断该引用型变量所指向的对象是否属于该类或该类的子类
子类的对象可以当作基类的对象来使用称作向上转型upcasting,反之成为向下 downcasting
动态绑定和多态
动态绑定是指 在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法
多态的必要条件:
要有继承 要有重写 父类引用指向子类对象
马士兵 java 学习笔记_马士兵java教程笔记1相关推荐
- vb教材笔记_金文老师vb教程笔记(完整版).doc
金文老师vb教程笔记(完整版) 金文老师vb教程笔记 vasual basic 程序开发环境 第一章visual basic 的启动与退出 启动vb的四种方法: 使用"开始"菜单中 ...
- 廖雪峰python教程整理笔记_廖雪峰python教程笔记(一)
变量与变量名 如 a = 123,此时,python解释器在做了两件事,在内存中创建了一个整数123对象,在内存中创建了一个名为a的变量.并把它指向123,一个赋值语句被执行后,内存中一个变量名与它所 ...
- java学习需要具备什么基础,大量教程
大学生学习Java需要注意些什么?大学生学习Java需要注意些什么?互联网行业,零基础也能学习.只要你肯努力,有真才实学,就会体会到敲代码的快乐.为什么Java行业吸引了大学生前来学习呢?一是因为就业 ...
- 亚马逊深度学习库_汽车Linux,8位社交,与Amazon的深度学习以及更多新闻
亚马逊深度学习库 在本周的开源新闻摘要中,我们将介绍汽车Linux,社交8位,具有神经网络的深度学习等等! 2016年5月7日至14日的开源新闻摘要 汽车用Linux等于大型汽车制造商的快速创新 Li ...
- 初学者java学习计划_初学者:计划在Windows 7 Media Center中录制直播电视的时间
初学者java学习计划 If you're a new user to Windows 7 Media Center you know it can act as a DVR and pause or ...
- java学习里程碑_记录您的里程和社区运行情况:Java EE 7真实体验
java学习里程碑 miles2run.org是跟踪跑步活动并与亲朋好友共享的简便方法. 可以创建然后跟踪基于天或基于距离的目标. 它还允许创建社区运行目标,并使多个跑步者参与并跟踪他们朝着该目标的活 ...
- Java学习路程1—— 一篇合理的笔记
1.了解Java发展史和其特点特性 1.1 Java发展史 Java最初由SUN公司创建(1992年),是对C++语言进行改造得到的语言,去除了C++复杂的指针和内存管理,起初结合了嵌入式系统的实时性 ...
- java学习出师_没基础怎么学好java?120天出师
有人说java比较容易入门,也有人说Java比较难学,这要根据个人的基础而定.但总体来说,java有着先天的优势,那Java有哪些优势呢?我们来具体看看吧. Java的优势 没基础怎么学java?当下 ...
- java学习出师_零基础学java来这里 出师如此简单
当今时代是互联网的时代,互联网时代的到来,使得我们的生活更加便利,同时互联网时代的到来也大大增加了市场对于技术人才的需求,在此时,Java编程语言的许多特性势使得它迅速成长,学习的人也越来越多 jav ...
最新文章
- linux 提权方法总结
- Python内置模块bisect(二分查找实现和快速插入有序序列)
- 数据结构与算法 / 排序算法 / 堆排序
- 命令行command更新android sdk + gradle设置代理
- linux kernel 三次握手建立TCP链接的实现
- Linux 释放缓存的方法
- 牛客题霸 [ 岛屿数量] C++题解/答案
- mysql 5.6 ibdata1_mysql 里的 ibdata1 文件不断的增长?
- 第二次作业 讲解及展示
- Python爬虫 ---(1)爬虫基础知识
- UI素材模板|新拟态新趋势图标ICON
- Learn OpenGL(五)——定义自己的着色器
- shell 中的expect 用法
- 【每天一个 Linux 命令】tree命令
- 电脑不限时长的录屏软件分享
- 使用Javascript无限添加QQ好友原理解析
- Android 带你玩转实现游戏2048 其实2048只是个普通的控件
- 监控摄像机如何连接到手机 手机APP远程连接常用方法
- P5707 【深基2.例12】上学迟到
- 为什么 Python 不支持函数重载?其他函数大部分都支持的?
热门文章
- 解决shapes (none,111) and (none,111) are incompatible
- java取余位运算_使用位运算取余
- 位运算实现加减乘除运算
- 服务器一堆pymp文件夹无法删除的解决方法
- level升级打怪是什么意思_工业平板电脑的常规升级是什么意思?以液晶屏来说明...
- html中鱼眼效果,鱼眼镜头使用入门指南:鱼眼镜头应该怎么用(附后期鱼眼效果)...
- Acoustics | 声音时间检测:日常声音理解
- 三星自定义状态栏_极简操作无需root隐藏S8导航栏和状态栏
- wxX11移植到arm板上(序)
- 现在的亚马逊收款账户怎么开?容易开吗?有谁了解过?