java基础知识及java面向对象


java基础知识:

变量:内存中的一块存储区,用来存储数据的

标识符:用来对变量、方法、数组、类等命名的字符序列

Java标识符规定:由数字、字母、下划线、$、¥组成;不能数字开头;大小写敏感;不全是关键字;

关键字:有特殊用途的单词,如:breakcase、char、forifvoid、int、long等

八大基本数据类型:byte、short、int、long、char、double、float、boolean

四大引用类型:String字符串、数组、类、接口

运算符与表达式:
①算术运算符:如 +-*/%
②赋值运算符:如 =;复合赋值运算符:如:+=-=*=/=%=
③自增运算符:如 ++;自减运算符:如 --;
④关系运算符:如 <<=>>===!=
⑤逻辑运算符:如 &(与)、&&(短路与)、|(或)、||(短路或)、!(非);短路运算
⑥三元运算符:如:a>b?a:b
⑦位运算符:如:&(位与)、|(位或)、^(异或)、~(取反)、<<(左移位)、>>(右移位)
二进制:如二进制 011  十进制表示为2*2^1+2*2^0=3

选   择  语  句:ifif...elseif...else if...elseswitch
switch小括号中表达式的运算结果支持byte、short、char、int类型;从Java1.5开始支持枚举类型(enum;从
Java7开始支持String类型

循  环   语  句:forwhiledo...while
do...while:至少执行一次

跳  转   语  句:breakcontinuereturn
break:结束整个循环;continue:终止当前循环并进入下一次循环;return:结束整个方法

方法:方法定义、方法调用、实参与形参、返回值、方法重载
在Java中,方法既可以有参数,也可以没有参数,唯一不同就是方法名后面多个参数列表,表示调用该方法时需要传
入数据。
如果要调用的方法没有参数,则不用传递参数列表;如果有参数,就要按照顺序和类型传递参数,参数之间用逗号
分隔。
形参是定义方法时候用的;实参是调用方法时候实际传递的数据。

定义在方法内部的变量被称为局部变量,局部变量只能在当前方法中访问,不能跨方法访问

方法返回值类型指的是方法返回数据的类型

方法重载:在同一个类中,允许存在一个以上的同名方法,只要其参数个数或者参数类型不同即可;返回值是否一样
无关、参数名是否一样无关
数组:定义并初始化:类型[] 数组名=new 类型[长度];下标从0开始;数组长度:数组名.length;使用for循环遍
历;方法的可变参数本质上就是一个数组;

java面向对象:

类与对象:类是抽象的,对象是类的实例;根据类创建对象的过程叫实例化;
不同类的描述和行为可能不同;同一类的不同对象的描述信息也可能不同;
类是一组对象抽象出来的模板;
类的定义:类名.java,类名大写开头;
类名.java里可以有多个class,但有且只有一个public修饰的class,而且此类名与.java的类名一致
类的实例化:new 类型()
给对象发消息:理论上叫发消息,实际中大家都说调用XXX方法
null:当一个变量指向null的时候表示变量不指向任何对象
this:在类内部this表示当前对象
封装:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别

一般情况下,都把成员变量声明为private,不希望外部访问的方法也是private,希望别人调用的方法声明为public
构造方法是创建对象,并且在创建时对对象进行初始化的特殊方法
构造方法格式及特点:
	* 方法名必须和类名一致
	* 没有返回值类型

JavaBean规范:
	* 必须是一个公共类,并将其访问属性设置为public
	* 必须有一个无参的构造方法
	* 所有成员变量都要是private
	* JavaBean属性是具有getter/setter方法的成员变量。也可以只提供getter方法,这样的属性叫只读属性;
	 也可以只提供setter方法,这样的属性叫只写属性;如果getter/setter都有,就叫可读可写属性。如果属性
	 类型为boolean类型,那么读方法的格式可以是get或is


包package:用文件系统的文件夹解释避免文件名重复的问题。同一个包下的类不能重名,不同包下的类可以重名
包语法:通过package定义在页面最顶部;
在磁盘上的保存路径和package一致,可以单级、可以多级
包两个作用:
1)不同用途类放到不同的包下面,避免一堆类都放到一个包下面,不便于分类管理
2)如果有重名的类,放到不同的包下
继承:Java中一个类可以继承其他类,子类会从父类继承所有非private成员。子类还可以有子类。
Java中一个类只能有一个父类(单继承),如果没有指定父类,则Java内置的Object类为父类,因此所有类都直接
或者间接继承自Object
多态:
	1. 父类类型的变量可以执行子类类型的对象
	2. 能够调用什么方法取决于变量的类型
	3. 具体调用哪个实现方法取决于对象的类型

子类中可以定义和父类中完全一样(名字、参数、返回值)的方法,叫重写或覆盖(Override)
final关键字可以修饰变量、方法、类
	* 修饰变量表示这个变量只能被赋值一次
	* 修饰方法表示方法不能被子类覆盖(override)
	* 修饰类表示类不能有子类

抽象类的特点:
	* 抽象方法没有方法体,连空方法体都不能写;一旦类中定义了抽象方法,类必须被修饰为抽象类
	* 抽象类无法实例化(new* 抽象类可以没有抽象方法
	* 抽象类的子类必须实现父类的所有抽象方法,除非子类也是抽象类

接口和类:
	* 接口的意义是定义做什么,类定义怎么做
	* 接口中只能声明static成员变量,不能声明普通成员变量
	* 接口中可以定义多个方法,也可以不定义任何方法
	* 类只能有一个父类,类可以实现多个接口
	* 接口可以继承多个接口
	* 接口也有多态、类型转换

接口和抽象类的相同点:
	* 都可以定义抽象方法
	* 都不能实例化


接口和抽象类的不同点:
	* 抽象类中可以定义方法的实现,接口中一定不可以定义方法的实现
	* 抽象类是单继承,接口是多继承
	* 接口中只可以定义常量,抽象类中可以定义成员变量
	* 接口用interface来表示,抽象类用abstract来表示

equals和==

==运算是用于比较两个是否是同一个对象。如果要比较内容是否相等,要调用equals方法
hashCode要求:两个对象如果equals相等,hashCode则必须相等;hashCode相等,equals则不一定相等
static成员直接可以通过类名调用,非static成员要通过对象调用
static成员中只能访问static成员,不能直接访问非static成员
非static成员可以访问static成员
static变量是全局共享的
用static和final结合当成常量使用,特点:不可改变、全局共享
静态代码块:初始化只执行一次

猜你喜欢

转载自blog.csdn.net/Mr_TXQ/article/details/109050952