今日很多人都跟不上项目进度了,所以老师讲了javaSE基本的一些东西,如下是javaSE的概括基础笔记
一、数据类型
基本数据类型(原始)8种
整形:byte ,short,int,long
浮点型:float,double
字符型:char
布尔型:boolean(true,false)
引用类型(对象类型)
String,Math,ArrayList等,还有自己定义的类
使用时: 必须实例化(创建对象)
String s = new String();
Dept dept = new Dept();
s,dept是对象名(实例名)
实例名.方法名()
实例名.属性名
byte by = 8;//变量定义/变量声明
int iy = by;
byte ay = (byte)iy;
by,iy,ay变量名
标识符(变量名,类名,方法名)
见名知意:
驼峰原则:
由多个单词组成,单词首字母大写(对于变量名和方法名首字母小写),类名首字母大写
作用域:
局部变量:离他最近的{}中有效
全局变量(属性):整个类中有效
运算符:
=赋值,==比较,&&(与,所有都需要判断),||(或,)
二。类的定义
创建.java文件(源文件)
原则:文件名与类名一致
创建HelloWord.java文件
public class HelloWord{
public static void main(String[] arg){
}
}
HelloWord hello = new HelloWord();
hello.
类中可以有属性和方法:
方法的定义:
访问修饰符 返回值类型 方法名(参数列表){方法体}
参数列表 0-n个
访问修饰符:public private protected 默认
返回值类型:无返回值写void ,有返回值写返回值类型,与return 的数据类型一致
参数:
方法中叫做形参
调用方法时传入的实参:实际存在。
方法参数,对于基本数据类型传的是值,对于引用类型,传的是地址
h
public class HelloWord{
public int sum(int a,int b){
a = a+b;
return a;
}
public void changedept(Dept dept){
dept.name="aaa";
}
}
public class Dept{
String name;
}
HelloWord h= new HelloWord();
int a =2;
int b =2;
h.sum(a,b);
Dept dept = new Dept();
dept.name="bbbb";
System.out.println(dept.name);//bbbb
h.changedept(dept);
System.out.println(dept.name);//aaa
构造方法(构造函数)
public 无返回值 方法名与类名一致 (){}
public Dept(){}
如果类中 没有显示的写构造方法,那么编译时会自动加一个不带参的构造方法,
如果类中显示的写了构造方法,无论是否带参数,都不会加不带参的构造方法。
作用:初始化赋值
三、继承关系(所有类的根类都是Object)
通用的功能写在父类中
extends
子类继承父类所有可以被继承的属性和方法
方法的重写:
子类重写父类方法:访问范围不能比父类小,返回值类型不能比父类大,方法名一致,参数列表一致。方法体不同
animal----person-=---(student,teacher)
父类中定义返回值类型为person,
子类重写该方法时,返回值类型不能是animal
调用父类super
方法的重载:
在同一个类中,访问修饰,返回值类型,方法名(一致),参数列表不一致
四、抽象类,抽象方法abstract
抽象类中可以有普通方法,但抽象方法必须在抽象类中
如果父类是一个抽象类,那么子类必须实现父类中抽象方法,或者子类也是一个抽象类
五,接口 ,统一的标准 implements实现接口,interface定义接口
接口不能被实例化,
六。static final
static 静态,修饰属性,方法,静态块
修饰属性的时候,全局的(所有对象用的是同一个)
类属性,类方法
不用实例化对象,就可以使用
类名.属性名
类名.方法名
静态块,当类被加载到的时候,就执行块中的语句(初始化)
final:最终的,修饰的类不能被继承,修饰的方法不能被重写,修饰的变量值不能被更改
static和final同时修饰的属性可以做常量:常量的变量名大写
七。数组和集合
数组:一组具有相同类型数据的集合
动态定义:先定义数组中数据的个数,后赋值
Object[] objs = new Object[4];
静态定义:
int[] array = {1,3,4,4,5};
定义时在内存分配空间,数组的长度是不可变的,其余不赋值的给默认值。
整形默认值0,String 是null,
获取数组的长度length属性
数组赋值 array[0] = 2;
数组取值:array[0] 索引号从0开始,最大不能大于数组的长度,否则数组越界
集合:
List:有序可重复
ArrayList
Set:无序不可重复
HashSet
Map:键值对
key,
value,
HashMap,put(key,value)存值,get(key)取值
ArrayList 。add(value)存值,get(0)取值,索引号从0开始,不能大于长度,可变长度。
size()长度
八 String
StringBuffer 线程安全的
StringBuilder 非线程安全的
append()追加数据
九。面向对象三大特性:封装,继承,多态
封装:属性名首字母一定小写,属性为private修饰,编写set和get方法
set属性名(类型与属性相同 参数名){属性名 = 参数名};
get属性名(){return 属性名};
方法中属性名首字母大写,
this 当前对象