1.Java如何定义变量:
声明变量:
数据类型 变量名;
赋值
变量名=值;
[final] 数据类型 变量名=值;
int[] arr=new int[长度];
ArrayList<Student> list=new ArrayList<Student>();
HashSet
定义一个存储String类型的HashSet集合对象
HashSet<String> set=new HashSet<String>();
String str="hell";
String str2=new String("hell");
Student stu1=new Student();
Student stu2=new Student(202001,"tom",23,"男");
2.Java中数据类型:
基本数据类型:
4类8种 byte short int long float double boolean char
引用数据类型:
Object的子类 数组 集合 String
类类型:String HelloWorld
数组类型:数据类型[]
int[] Student[] String[]
接口类型: Animal
interface Animal{}
例子:
int a=10;
short b=19;
float f=1.0f;
char c=‘A’;
boolean b=true;
String str=“hello,word”; 字面量赋值
String str1=new String(“hello, word”);
class Student{
//属性 全局变量
private String name=null;
private int age=0;
private String stuId=null;
… setXXX getXXX
}
GC垃圾回收器
3.标识符
可以用来表示:变量名 方法名 类名 接口名 常量名….
1.字母或_开头,允许出现数字
2.不能java中的关键字或者保留字class interface final static void super this try for if while else switch case default extends implements …..
String stuName=“tom”;
final String TEXT=“内容”;
4.代码定义在哪儿?
代码只能出现在方法中;
方法只允许定义在类中;
类出现在包中。
5.包:目录/文件夹
com.briup.grms
.bean Student Book Animal ….
.utils 工具类 MD5.java ConnectionFactory.java
.web 表现层 与页面进行交互的代码
.service 业务逻辑层 核心
.dao 数据库操作层 jdbc
package com.base;
6.类: 特征——》属性 行为——〉方法
final
Animal
eat() 吃食物
Cat
eat() 吃鱼干
Dog
eat() 吃肉
封装 继承
多态:同一类域的不同对象,调用相同方法时有多种表现形态。
Animal a=new Animal();
a.eat();//吃食物
编译时类型 运行时类型
Animal c=new Cat();
c.eat();//吃鱼干
Animal d=new Dog();
d.eat();//吃肉
public void test(Animal a){
a.eat();
}
test();
Cat c=new Cat();
c.eat();
Cat e=new Animal();
static
[修饰符] class 类名{
//类体
//1.属性 全局变量 有默认值. null 0 0.0 false ‘’
private String str;
//2.方法 构造器
[修饰符] 返回类型 方法名([参数列表]){
//方法体 编写代码的地方
return “返回类型”;
}
}
7.编写HelloWorld程序运行
编译
javac -d bin src/HelloWorld.java
运行
java -cp bin com.test.HelloWorld
类名.静态方法名([参数]);
HelloWorld.show();
main{
HelloWorld.show();
}
对象.非静态方法名([参数]);
HelloWorld hw=new HelloWorld();
hw.show();
8.set/get方法
属性被私有化之后,为了对外提供赋值和取值方法,而产生的。
setXXX方法的作用是给属性赋值。
getXXX方法的作用是获取属性值。
9.toString方法
Object超类中提供的方法,每个引用类型都会继承下来,如果没有重写toString方法,默认使用Object中的方法,则会返回该对象的内存地址值。
对于pojo类需要重写toString方法。
10.构造器
1.如果没有显示定义构造器,默认JVM会提供一个无参构造器。
2.如果显示定义了构造器,就不会在提供无参构造器了。
构造器的作用之一是给属性赋值,除此之外可以调用父类构造器以及返回对象的内存地址值。
重载:方法名相同,参数列表(参数类型不同,参数个数不同)不同。
重写:方法名相同,参数列表相同,异常不能被扩大,范围不能被缩小。
11.练习:
自定义Book
bookId
bookName
price
set/get
构造器重载
重写toString
Book测试类
构建三个书本对象
存储到容器(数组,集合)中
遍历容器输出到控制台
12.集合
集合的分类
java.util
接口:
Collection
List : 允许重复,记录元素进入集合的先后顺序
Set:不允许重复,不记录元素进入集合的先后顺序
SortedSet Set加排序
Map : 键值对 (key,value) key不允许重复
SortedMap Map+加对key排序
数据类型 变量名=new 数据类型();
ArrayList list1=new ArrayList();
LinkedList list2=new LinkedList();
Animal c=new Cat();
List list3=new ArrayList();
List list4=new LinkedList();
实现类:
List:
ArrayList(Vector) 数组
检索效率高
插入删除效率低
LinkedList 链表
插入删除效率高
检索效率低
Set:单个元素 不重复
Object
toString()
equals()
hashcode()
HashSet 16 0 15 hash散列表
SortedSet --> TreeSet 红黑树
Set<String> set1=new HashSet<>()
Set<String> set2=new TreeSet<>()
Map: key-value
HashMap 只对keyHash散列表
SortedMap ----> TreeMap 红黑树