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. vue的组件基础

    组件分为全局组件和局部组件. 组件的核心是template:所有的数据都为template服务. 父组件子组件传值:因为子组件是父组件的个标签,完全等同于添加动态属性: 然后子组件能够通过props: ...

  2. 百度地图API密钥

    百度地图API密钥 DD279b2a90afdf0ae7a3796787a0742e nSxiPohfziUaCuONe4ViUP2N   /*亲测可用*/ PlhFWpA02aoURjAOpnWcR ...

  3. js的运用1

    1.parselnt() 2.parsefloat() 遇到第一个字节是非数字就结束了. 3.      var   a="hello world" a这个变量是字符串了,对于里面 ...

  4. Java应用之shiro

    Apache Shiro是一个强大而灵活的开源安全框架,它能够干净利落地处理身份认证,授权,企业会话管理和加密. 以下是你可以用 Apache Shiro所做的事情: 1.验证用户 2. 对用户执行访 ...

  5. apache tomcat (catalina)查版本(solaris/unix)

    先进到tomcat的bin目录下(cd /tomcat目录/bin),在执行./version.sh https://blog.csdn.net/vv___/article/details/78653 ...

  6. vue:不同环境配置不同打包命令

    修改prod.env.js 'use strict'const target = process.env.npm_lifecycle_event;if (target == 'build') { // ...

  7. Fernflower 反编译.class文件

    最近有些奇怪Intellij IDEA通过什么查看的源码,通过打开源码意外的发现如下注释 原来是通过Fernflower这个反编译工具w(゚Д゚)w. 使用Fernflower反编译出的代码相当友好, ...

  8. Jenkins+Jmeter持续集成笔记(二:ANT执行Jmeter脚本)

    Jmeter接口测试脚本运行后生成的是jtl(xml)格式的文件,这些文件不具备可读性,所以我们要把他转化为可以阅读的html格式报告. Ant是一个功能强大的打包编译工具.我们使用他的目的是将xml ...

  9. DNSmasq介绍

    DNSmasq介绍 转载自:http://www.cnblogs.com/demonxian3/p/7472300.html#top 云主机的mac地址由物理机的dnsmasq随机分配,如果要修改ma ...

  10. Redis入门到高可用(十八)—— 主从复制

    一.单机有什么问题 1.机器故障 2.容量瓶颈 3.QPS瓶颈 二.主从复制 1.数据副本(高可用.分布式基础) 2.拓展读性能(读写分离)  简单总结: 三.主从复制配置 四.主从复制配置-实验演示 ...