JAVA基础知识笔记
1、类只能用Public修饰,不能使用protected、private修饰。也可以不加修饰符,称做友好类。
2、类的实体元素包含成员变量和方法的定义,成员变量分为实例变量和类变量(static修饰的变量),方法分为实例方法和类方法(static修饰的方法)。
3、类里面定义的变量称为成员变量,方法里面定义的变量以及方法的参数定义的变量称为局部变量。
4、类方法(static修饰的方法)只能操作成员变量的类变量,而实例方法既可以操作成员变量的实例变量,又可以操作成员变量的类变量。
5、方法的定义: public void 方法名(){ } 方法必须含有返回类型void/string/int等等(构造方法除外)
6、每个类都有构造方法,构造方法的方法名与类名相同,并且没有类型(返回类型),如果类中没有自己声明构造方法,类会创建自己默认的构造方法,如果类中创建了构造方法,则系统不再创建默认构造方法。
7、使用类名进行声明对象:class name; 使用new 关键字和类的构造方法为对象分配内存空间。 name=new class();
8、package 关键字,声明包 package 包名; import 关键字,import name; 导入包中的类,name命名使用标识符,或者多个标识符使用 . 连接。
9、方法和变量可以使用public(公共的)、protected(受保护的)、private(私有的)修饰符修饰,也可以不加修饰符,称作友好方法、友好变量。
10、权限:public>protected>友好的>private。
11、public 类型的类(公共类),不同的包里面的类可以调用。
private类型的方法和变量,在定义的对象中不能调用操作。
protected类型的方法和变量与友好的(不加类型)方法和同一个包里面可以互相调用,但是不同的包之间的两个类,不能互相调用。
public类型的方法和变量,可以互相调用。(此处看不出protected类型与友好类型的区别,后面在继承方面可以发现区别)
类内部 本包 子类 外部包
public √ √ √ √
protected √ √ √ ×
default √ √ × ×
private √ × × ×


12、重载:一个方法可以通过(参数的个数或(和)数据类型的不同)来实现函数重载。方法的类型(返回类型和参数名称不参与比较),例如两个方法的名称相同,即使类型不同,也要保证参数的个数或(和)数据类型不同。 包含多个参数的话,参数的数据类型不同,改变参数顺序也可以实现重载。
重载的最直接作用是方便了程序员可以根据不同的参数个数,顺序,类型,自动匹配方法,减少写过个函数名或方法名的重复步骤。
13、继承(extends)语法是: class 子类名 extends 父类名{ }
如果一个类的声明中没有使用extends关键字,这个类被系统默认为是Object的直接子类,Object是java.lang包中类。
14、子类与父类在同一个包中,子类继承了父类中不是private类型的成员变量和方法。
子类与父类不在同一个包中,子类继承了父类中public、protected类型的成员变量和方法,不能继承友好变量和友好方法。
15、成员变量的隐藏和方法的重写。子类继承父类的成员变量和方法,如果子类自己定义的成员变量和父类的成员变量同名时,子类就隐藏了父类的成员变量。如果子类自己定义的方法和父类的方法同名,同时参数个数和数据类型、返回类型完全相同,就是将方法重写。通过方法的重写可以隐藏继承的方法。子类重写父类方法时,不可以降低方法的访问权限。例如父类方法是protected类型,重写方法不能是友好类型方法,可以是public类型方法。
16、final关键字,final可以修饰类、成员变量、方法、方法参数。
final修饰类,则该类不可以被继承。
final修饰方法,则该方法不可以被重写。
final修饰成员变量,则该变量就是常量,必须赋给初值,而且不能再发生变化。
17、上转型对象。子类创建对象的引用可以放到父类的对象中,就得到了该对象的一个上转型对象。
18、多态。父类的某个方法被子类重写后,可以产生自己的功能行为。多态是在继承的基础上体现的,没有继承就谈不得多态。
19、super关键字。子类覆盖了父类的成员方法,或者重写了父类的方法,可以在子类中,使用super调用父类的方法和成员对象。--需完善
20、abstract关键字。用abstract关键字修饰的类是抽象类,抽象类可以拥有抽象方法,抽象类里面的抽象方法只能声明,不能实现。抽象类不能被new对象,只能通过子类继承调用,子类里面需要覆盖抽象父类的抽象方法。抽象类只能是Public、protected类型,也只能这样才能被继承调用。抽象类里面的成员变量是静态常量,不能被改变。
抽象类的抽象方法一定不能有实现(也就是不能有大括号),子类必须要override覆写抽象方法,从而让继承类的行为有一定规范;抽象类的方法不一定都是抽象方法,但抽象方法所在的类必须是抽象类;抽象类不能实例化,抽象类的继承类被实例化后可以直接调用抽象类的方法(抽象方法除外,抽象方法被继承类 override),不希望实例化而直接调用方法就可以用抽象类;
21、interface关键字。定义接口interface name。接口里面的方法只能声明,不能实现。接口不能使用new对象,只能通过被“实现”,“实现”子类必须实现接口声明的方法,一个类可以实现多个接口。使用implement实现接口。
22、内部类。类的内部声明类,子类可以使用外面类的成员变量和方法,外面类可以实例化内部类的对象。
23、匿名类。使用类声明对象时,可以重写父类里面的方法。class name=new class(){};
24、逻辑运算符。
& &&
无论长路与还是短路与
两边的运算单元都是布尔值
都为真时,才为真
任意为假,就为假
区别
长路与 两侧,都会被运算
短路与 只要第一个是false,第二个就不进行运算了
| ||
无论长路或还是短路或
两边的运算单元都是布尔值
都为假时,才为假
任意为真,就为真
区别
长路或 两侧都会被运算
短路或 只要第一个是true的,第二个就不进行运算了
!
取反!
真变为假
假变为真
^
异或^
不同,返回真
相同,返回假
三元操作符 表达式?值1:值2 如果表达式为真 返回值1如果表达式为假 返回值2
int k = i < j ? : ;
// 相当于
if (i < j) {
k = ;
} else {
k = ;
}
JAVA基础知识笔记的更多相关文章
- java基础知识-笔记整理
1.查看已安装jdk文件路径 CMD输入java -verbose. 2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...
- Java基础知识笔记(八:集合类)
目录 1 集合类简介 2 List介绍及简单使用 2.1 LinkedList介绍及简单使用 2.2 ArrayList介绍及简单使用 2.3 Vector介绍及简单使用 2.3.1 S ...
- Java基础知识笔记(四:多线程基础及生命周期)
一.多线程基础 编写线程程序主要是构造线程类.构造线程类的方式主要有两种,一种是通过构造类java.lang.Thread的子类,另一种是通过构造方法实现接口java.lang.Runnable的类. ...
- Java基础知识笔记(一:修饰词、向量、哈希表)
一.Java语言的特点(养成经常查看Java在线帮助文档的习惯) (1)简单性:Java语言是在C和C++计算机语言的基础上进行简化和改进的一种新型计算机语言.它去掉了C和C++最难正确应用的指针和最 ...
- Java基础知识笔记(五:多线程的同步问题)
编写多线程程序往往是为了提高资源的利用率,或者提高程序的运行效率,或者更好地监控程序的运行过程等.多线程同步处理的目的是为了让多个线程协调地并发工作.对多线程进行同步处理可以通过同步方法和同步语句块实 ...
- Java基础知识笔记(六:网络程序设计)
一.统一资源定位地址(URL) (1)网络地址 在网络上,计算机是通过网络地址标识.网络地址通常有两种表示方法,第一种表示方法通常采用4个整数组成,例如: 166.111.4.100表示某一网站服务器 ...
- Java基础知识笔记(七:接口、变量作用域和参数传递)
一.接口 Java语言不允许一个子类拥有多个直接父类,即任何子类只能有一个直接父类.但允许一个类实现多个接口,即在定义类的接口名称列表中可以包含1个或多个接口名称,从而实现多重继承的特性.接口的定义格 ...
- Java基础知识笔记(三:文件与数据流)
一.输入流与输出流 输入流将数据从文件.标准输入或其他外部输入设备中加载到内存.输出流的作用则刚好相反,即将在内存中的数据保存到文件中,或传输给输出设备.输入流在Java语言中对应于抽象类java.i ...
- Java基础知识笔记(二:泛型和枚举)
1.泛型 与面向对象的多态性相类似,应用泛型可以提高程序的复用性.与多态性不同的是,应用泛型可以减少数据的类型转换,从而提高代码的运行效率.泛型实际上是通过给类或接口增加类型参数实现的.不带泛型的类的 ...
随机推荐
- 26、jQuery
一. jQuery简介 (一) jQuery是什么: 是一个javascript代码仓库 是一个快速的简洁的javascript框架,可以简化查询DOM对象.处理事件.制作动画.处理Ajax交互过程. ...
- js jq 手机号实现(344) 附带删除功能 jq 实现银行卡没四个数加一个空格 附带删除功能
js 手机号实现(344) 下面有将正则验证去掉“-” 或“空格” 下一篇博客有单独的删除功能方法 <!DOCTYPE html> <head> <meta char ...
- python学习之旅(十五)
Python基础知识(14):函数(Ⅴ) 一.装饰器 decorator:本质上就是函数,可以增强函数的功能. 定义起来虽然有点复杂,但使用起来非常灵活和方便 1.不修改被装饰函数的源代码 2.不修改 ...
- easyui combobox 去空格事件 去掉,结果输入空格体验不畅的感觉,让combobox能够输入空格
$("[comboname=name]").next("span").find("input.textbox-text").unbind(& ...
- 2^n算法
题目描述: 如题…… 那么,可以用c++自带快速幂:pow: #include<cstdio> using namespace std; int n; int main() { scanf ...
- HDU_5528_Count a * b
Count a * b Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)Tot ...
- 【转】AngularJS动态生成div的ID
AngularJS动态生成div的ID 原文链接:http://blog.csdn.net/you23hai45/article/details/52348078 1.问题背景 给定一个数组对象,里面 ...
- mysql 时间戳的使用!
时间转时间戳方法: unix_timestamp() 记录时间戳的类型: bigint 时间戳转时间的方法:from_timestamp() 感谢水哥给的截图!
- spring相关jar包
spring.jar是包含有完整发布的单个jar 包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-m ...
- SQLAlchemy(包含有Flask-Migrate知识点)
what's the SQLAlchemy SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQ ...