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基础知识笔记的更多相关文章

  1. java基础知识-笔记整理

    1.查看已安装jdk文件路径 CMD输入java -verbose.   2.java学习提升路线 java学习视屏地址: http://www.icoolxue.com/album/show/38 ...

  2. Java基础知识笔记(八:集合类)

    目录 1  集合类简介  2  List介绍及简单使用 2.1  LinkedList介绍及简单使用 2.2  ArrayList介绍及简单使用 2.3  Vector介绍及简单使用 2.3.1  S ...

  3. Java基础知识笔记(四:多线程基础及生命周期)

    一.多线程基础 编写线程程序主要是构造线程类.构造线程类的方式主要有两种,一种是通过构造类java.lang.Thread的子类,另一种是通过构造方法实现接口java.lang.Runnable的类. ...

  4. Java基础知识笔记(一:修饰词、向量、哈希表)

    一.Java语言的特点(养成经常查看Java在线帮助文档的习惯) (1)简单性:Java语言是在C和C++计算机语言的基础上进行简化和改进的一种新型计算机语言.它去掉了C和C++最难正确应用的指针和最 ...

  5. Java基础知识笔记(五:多线程的同步问题)

    编写多线程程序往往是为了提高资源的利用率,或者提高程序的运行效率,或者更好地监控程序的运行过程等.多线程同步处理的目的是为了让多个线程协调地并发工作.对多线程进行同步处理可以通过同步方法和同步语句块实 ...

  6. Java基础知识笔记(六:网络程序设计)

    一.统一资源定位地址(URL) (1)网络地址 在网络上,计算机是通过网络地址标识.网络地址通常有两种表示方法,第一种表示方法通常采用4个整数组成,例如: 166.111.4.100表示某一网站服务器 ...

  7. Java基础知识笔记(七:接口、变量作用域和参数传递)

    一.接口 Java语言不允许一个子类拥有多个直接父类,即任何子类只能有一个直接父类.但允许一个类实现多个接口,即在定义类的接口名称列表中可以包含1个或多个接口名称,从而实现多重继承的特性.接口的定义格 ...

  8. Java基础知识笔记(三:文件与数据流)

    一.输入流与输出流 输入流将数据从文件.标准输入或其他外部输入设备中加载到内存.输出流的作用则刚好相反,即将在内存中的数据保存到文件中,或传输给输出设备.输入流在Java语言中对应于抽象类java.i ...

  9. Java基础知识笔记(二:泛型和枚举)

    1.泛型 与面向对象的多态性相类似,应用泛型可以提高程序的复用性.与多态性不同的是,应用泛型可以减少数据的类型转换,从而提高代码的运行效率.泛型实际上是通过给类或接口增加类型参数实现的.不带泛型的类的 ...

随机推荐

  1. 26、jQuery

    一. jQuery简介 (一) jQuery是什么: 是一个javascript代码仓库 是一个快速的简洁的javascript框架,可以简化查询DOM对象.处理事件.制作动画.处理Ajax交互过程. ...

  2. js jq 手机号实现(344) 附带删除功能 jq 实现银行卡没四个数加一个空格 附带删除功能

    js 手机号实现(344)  下面有将正则验证去掉“-” 或“空格”  下一篇博客有单独的删除功能方法 <!DOCTYPE html> <head> <meta char ...

  3. python学习之旅(十五)

    Python基础知识(14):函数(Ⅴ) 一.装饰器 decorator:本质上就是函数,可以增强函数的功能. 定义起来虽然有点复杂,但使用起来非常灵活和方便 1.不修改被装饰函数的源代码 2.不修改 ...

  4. easyui combobox 去空格事件 去掉,结果输入空格体验不畅的感觉,让combobox能够输入空格

    $("[comboname=name]").next("span").find("input.textbox-text").unbind(& ...

  5. 2^n算法

    题目描述: 如题…… 那么,可以用c++自带快速幂:pow: #include<cstdio> using namespace std; int n; int main() { scanf ...

  6. HDU_5528_Count a * b

    Count a * b Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Tot ...

  7. 【转】AngularJS动态生成div的ID

    AngularJS动态生成div的ID 原文链接:http://blog.csdn.net/you23hai45/article/details/52348078 1.问题背景 给定一个数组对象,里面 ...

  8. mysql 时间戳的使用!

    时间转时间戳方法: unix_timestamp() 记录时间戳的类型: bigint 时间戳转时间的方法:from_timestamp() 感谢水哥给的截图!

  9. spring相关jar包

    spring.jar是包含有完整发布的单个jar 包,spring.jar中包含除了spring-mock.jar里所包含的内容外其它所有jar包的内容,因为只有在开发环境下才会用到 spring-m ...

  10. SQLAlchemy(包含有Flask-Migrate知识点)

    what's the SQLAlchemy SQLAlchemy是一个基于Python实现的ORM框架.该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQ ...