一、类与对象


1、创建类

创建一个学生类、并且创造成员变量和方法

public class student{
String name;
int age;
public void study(参数列表){
…………
}
}

2、对象的使用

注:new 出来的东西都在堆当中

类名 对象名 = new 类名();
例:student stu = new student();

3、使用对象访问成员

访问成员方法:   对象.成员方法();
例: stu.study();
访问成员变量: 对象.成员变量;
例: stu.name;

二、封装

1、private关键字

private 数据类型 变量名;

2、如何访问成员变量

提供getXxx、setXxx方法
例:
public class student{
private String name;
private int age; public void setName(String n){
name = n;
}
public String getName(){
return name;
}
public void setAge(int a){
age = a;
}
public int getName(){
return age;
}
}

3、封装优化(一)之this关键字

注:this代表所在类的当前对象的引用(地址值);即谁在调用,就代表谁

public class student{
private String name;
private int age; public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int age(){
return age;
}
}

4、封装优化(二)之构造方法

注:当一个对象初始化时,构造方法用来初始化该对象,给对象的成员变量赋初值。

且构造方法的类名与它所在类名相同,且没有返回值类型,且不需要void。

public class student{
private String name;
private int age; public student(){}
public student(String name,int age){
this.name = name;
this.age = age;
}
}

5、构造方法的注意事项以及标准代码

注意事项:

  1. 如果你不提供构造方法,系统会自动给出一个无参构造方法。
  2. 如果你写了构造方法,系统不再提供无参构造方法。
  3. 构造方法是可以重载的,既可以定义参数,也可以不定义参数

标准代码——JavaBean:

它是Java语言编写类的一种标准规范,符合JavaBean的类必须是具体的且公共的,并且具有无参构造方法,提供用来操作成员变量的getXxx和setXxx方法。

public class student{
//成员变量
private String name;
private int age;
//构造方法
public student(){}
public student(String name,int age){
this.name = name;
this.age = age;
}
//成员方法
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}

三、Scanner类

1、具体实现

//导包
import java.util.Scanner;
public class student{
public static void main(String[] args){
//创建一个键盘录入数据的对象
Scanner sc = new Scanner(System.in);
//System.in 表示通过键盘录入数据 int a = sc.nextInt();
//表示通过对象来调用成员方法
//nextInt 表示将下一条标记为int
String b = sc.next();
//查找并返回扫描仪的下一个完整令牌
}
}

2、匿名对象

new Scanner(System.in).nextInt();

注意事项:

创建匿名对象直接调用方法,并没有变量名

一旦调用了两次方法,就创建了两个对象,导致空间的浪费

匿名对象也可以作为方法的参数和返回值列表


四、Random类

1、具体实现

//导包
import java.util.Random;
public class student{
public static void main(String[] args){
Random r = new Random();
//产生一百以内的随机数
for(int i=0;i<100;i++){
int num = r.nextInt();
//每调用一次nextInt方法,就会出现一个新的随机数
System.out.println("随机数:"+ num );
}
}
}

五、ArrayList类

1、具体实现

//导包
import java.util.ArrayList;
public class student(){
public static void main(String[] args){
//创建一个数组
ArrayList<String> list = new ArrayList<>();\
//从JDK7之后,右侧泛型可以留空,但“<>”必须写上 //创建学生对象
String n1 ="小杜";
String n2 ="小王";
String n3 ="小张"; //把创建的学生元素添加到集合当中,利用ArrayList这个类的方法
list.add(n1);
list.add(n2);
list.add(n3);
System.out.println(list);
//最后打印输出 }
}

2、常用的方法

public boolean add(E e);将指定的元素添加到此集合的尾部

public E remove(int index);移除把此集合中指定位置的元素,返回被删除的元素

public E get (index);返回此集合中指定位置的元素,返回获取的元素

public int size();返回此集合中的元素数,遍历集合时可以控制索引范围,防止越界。


六、String类

1、特点

  • 字符串的值在创建之后不可改变。
  • 因为字符串String对象是不可变的,所以它们可以被共享。
  • "abc" = char[] data{"a","b","c"}

2、常用的方法

判断功能的方法:equals和equalsIgnoreCase

获取功能的方法:length、concat、charAt、indexOf、subString

转换功能的方法:tocharArray、getByte、replace

分割功能的方法:split


七、static关键字

静态方法

静态原理

静态代码块


八、Array类

1、操作数组的方法

public static String toString;返回指定数组内容的字符串表示形式。

public static void sort();对指定的数组进行升序排列;


九、Math类

1、基本运算方法

public static double abs();返回double数值的绝对值

public static double ceil();返回大于等于参数的最小整数


十、继承

1、概述

:其中多个类可称为子类,单独的一个类可以称为父类、超类或者基类

2、表示形式:

class 子类 extends 父类{……}

3、成员方法重写

: @override

4、继承后的特点——构造方法

5、super和this关键字

6、继承的特点:

  • 继承只支持单继承,不支持多继承。
  • 继承可以多层继承(有体系结构)
  • 子类和父类是相对概念

十一、抽象类

1、表示形式

注:修饰符和参数列表要注意

抽象类:public abstract class 类名{}

抽象方法:public abstract void 方法名();

2、注意事项

  • 抽象类不能创建对象,也就是不能实例化,否则编译不通过,但是可以创建子类继承
  • 抽象类中,可以有构造方法,是供子类创建对象时,初始化父类成员使用的
  • 抽象类中不一定有抽象方法,但有抽象方法的一定是抽象类
  • 抽象类的子类必须重写父类的所有方法,否则编译也不通过,除非子类也是抽象类

十二、接口

1、定义与实现方式

public interface 接口名{}

class 类名 implments 接口名{

//重写接口中的抽象方法(必须)

//重写接口中的默认方法(可选)

}

2、基本实现和多实现

注:类与接口的关系是实现关系,即类实现接口,该类可以称为接口的实现类或者子类

抽象方法

默认方法

静态方法

私有方法


十三、多态

1、体现

父类类型 变量名 = new 子类对象;

2、向上转型和向下转型

向上转型:父类类型 变量名 = new 子类对象;

向下转型:父类类型 变量名 = (子类类型) 子类对象;


十四、final关键字


十五、权限修饰符


十六、内部类

1、概念

:如果在A类中新建一个B类,那么就称B类是内部类,A类是外部类

2、访问特点

  • 内部类可以访问外部类成员,包括私有方法
  • 外部类要想访问内部类,必须得新建一个内部类的对象

3、匿名内部类(重点)

  • 是内部类的简化写法——new 父类名或接口名();
  • 匿名内部类必须是实现一个父接口或者继承一个父类
  • 也可以做为函数参数传递

十七、引用类型用法

1、class做为成员变量

2、interface做为成员变量

3、interface做为方法参数与返回值类型


十八、Object类、时期时间类

1、Object类

2、Date类

常用方法:

public long getTime() ;把日期时间转换成对应毫秒值

3、DateFormat类

常用方法:

public String format();把日期格式化字符串

public Date parse();把字符串转换成为Date对象

4、Calendar类

常用方法:

get和set方法

add和getTime方法


十九、System类

1、常用方法:

currentTimeMills方法

获取当前系统时间与1970年01月01日00:00点之间的毫秒差值

arraycopy方法

将数组中指定的数据拷贝到另一个数组中。


二十、StringBuilder类

1、常用方法

append方法:添加任意类型数据的字符串形式,并返回当前对象自身

toString方法:将当前StringBuilder对象转换为String对象


二十一、包装类

基本类型 java.lang中的包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

注:从JDK5开始就自动完成装箱和拆箱动作


二十二、Collection接口

1、集合类的继承体系

2、Collection常用功能

  • public boolean add(E e): 把给定的对象添加到当前集合中 。
  • public void clear():清空集合中所有的元素。
  • public boolean remove(E e): 把给定的对象在当前集合中删除。
  • public boolean contains(E e): 判断当前集合中是否包含给定的对象。
  • public boolean isEmpty(): 判断当前集合是否为空。
  • public int size(): 返回集合中元素的个数。
  • public Object[] toArray(): 把集合中的元素,存储到数组中。

List集合

1、常用方法

get、add、remove、set方法

2、List子类

  • ArrayList集合
  • LinkList集合

Set接口

1、两个集合

  • HashSet集合
  • LinkedHashSet集合

Colletions集合工具类


二十三、Map集合

1、常用的集合

  • HashMap集合
  • LinkedHashMap集合

2、Map接口中常用的方法

  • public V put(K key, V value): 把指定的键与指定的值添加到Map集合中。
  • public V remove(Object key): 把指定的键 所对应的键值对元素 在Map集合中删除,返回被删除元素的值。
  • public V get(Object key)根据指定的键,在Map集合中获取对应的值。
  • boolean containsKey(Object key)判断集合中是否包含指定的键。
  • public Set<K> keySet(): 获取Map集合中所有的键,存储到Set集合中。
  • public Set<Map.Entry<K,V>> entrySet(): 获取到Map集合中所有的键值对对象的集合(Set集合)。

二十四、泛型

1、定义格式

修饰符 class 类名<代表泛型的变量> {  }


二十五、Iterator迭代器

1、常用方法

public E next();返回迭代的下一个元素。

public boolean hasNext() ;如果任有元素要返回的话,则返回ture


二十六、异常

1、异常体系

:异常的的根类是java.lang.throwable,其下有两个子类java.lang.Exception和java.lang.Erro

2、异常处理

  • 抛出异常throw
使用格式: 在方法内——thorw new 异常类名(参数)
  • Objects非空判断
public static <T> T requireNonNull(T obj):查看指定引用对象不是null
  • 声明异常throws
修饰符 返回值类型 方法名(参数) throws 异常类名1,异常类名2…{   }
  • 捕获异常try……catch
try{
     编写可能会出现异常的代码
}catch(异常类型  e){
     处理异常的代码
     //记录日志/打印异常信息/继续抛出异常
}

  • finally代码块

3、异常注意事项

  1. 多个异常分别处理。
  2. 多个异常一次捕获,多次处理。
  3. 多个异常一次捕获一次处理
  • 运行时异常被抛出可以不处理。即不捕获也不声明抛出。
  • 如果finally有return语句,永远返回finally中的结果,避免该情况.
  • 如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。
  • 父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出

4、自定义异常

二十七、线程

1、线程与进程

2、并发与并行

后继

Lambda表达式、反射、注解、IO流

Java学习历程记录(一)的更多相关文章

  1. 登录模块的进化史,带大家回顾java学习历程(二)

    接着前面的登录模块的进化史,带大家回顾java学习历程(一) 继续往下面讲 前面我们去实现登录功能,都是想着要完成这个功能,直接在处理实际业务的类中去开始写具体的代码一步步实现,也就是面向过程的编程. ...

  2. (。・・)ノ~个人java学习随笔记录

    基本认识 1.编程思维 根据这几天的java学习,编写程序最重要的就是要有一个清晰的思路.语法上的错误可以跟随着不断的联系与学习来弥补,清晰的思维却只有自己来前期模仿,后面慢慢摸索形成一套属于自己的思 ...

  3. java学习历程,一年三年五年计划

    学习这一部分其实也算是今天的重点,这一部分用来回答很多群里的朋友所问过的问题,那就是你是如何学习Java的,能不能给点建议?今天我是打算来点干货,因此咱们就不说一些学习方法和技巧了,直接来谈每个阶段要 ...

  4. 登陆模块的进化史,带大家回顾java学习历程(一)

    一直在想着写点特别点的东西,让有兴趣学编程的人确实能学到点干货,今天就来随意写写. 大家在网上查找资料看到最多的demo估计就是登陆功能的演示了,为何大家偏爱拿登陆来做demo呢?因为行业应用类程序的 ...

  5. Java学习笔记记录(二)

    1.复合语句 if条件语句 使用场景:boolean类型判断.一个范围的判断.几个常量值的判断 有左大括号就没有分号,有分号就没有左大括号. 如下: public class demo1 { stat ...

  6. Java学习笔记记录(一)

    1.Java编写的一个基本结构 1 public class demo{ //以下包含权限修饰符.静态修饰符.返回值修饰符以及主方法main() 2 public static void main(S ...

  7. java学习笔记记录

    Java内存模型: Java虚拟机规范中将Java运行时数据分为六种. 1.程序计数器:是一个数据结构,用于保存当前正常执行的程序的内存地址.Java虚拟机的多线程就是通过线程轮流切换并分配处理器时间 ...

  8. JAVA学习,是一条漫长的道路

    我在Java 1.0正式问世前就开始学习Java,这么多年过去了,到现在我的Java学习历程还没有停过.我阅读原文书,研究原始码,撰写程序,自认为走得扎实,不奢望一步登天.像我这样老式的学习方式,显然 ...

  9. Java学习记录第一章

    学习Java第一章的记录,这一章主要记录的是Java的最基础部分的了解知识,了解Java的特性和开发环境还有Java语言的优缺点. 计算机语言的发展大概过程:机器语言--->汇编语言---> ...

随机推荐

  1. Eazfuscator.NET(.net混淆工具)

    软件功能 调试支持: 在你的程序集被Eazfuscator.NET混淆后,它不会成为不可调试混乱的砖块.你总是可以得到一个行号,出现未处理的异常,查看可读的堆栈跟踪,甚至附加调试器来遍历你的模糊代码. ...

  2. dp的小理解

    这段时间刷dp,总结出了一个不算套路的套路. 1.根据题意确定是否有重叠子问题,也就是前面的状态对后面的有影响,基本满足这个条件的就可以考虑用dp了. 2.确定是dp后,就是最难的部分--如何根据题意 ...

  3. struct 和 class的区别

    struct和class如果按照在C的时代,还是有很大差别的. c中struct的定义如下: struct  结构名 {   成员表 }: 因为struct是一种数据类型,那么就肯定不能定义函数,所以 ...

  4. play games for learning web skills

    play games for learning web skills CSS flexbox https://codepip.com/games/flexbox-froggy/ CSS grid ht ...

  5. MathJax TeX & LaTeX

    MathJax TeX & LaTeX mathcal https://leetcode-cn.com/problems/binary-search/solution/er-fen-cha-z ...

  6. W3Schools Quizzes

    W3Schools Quizzes Test your skills https://www.w3schools.com/quiztest/default.asp Quiz HOME Quiz HTM ...

  7. Flutter framework & Flutter basics

    Flutter framework & Flutter basics https://flutter.dev/docs/get-started/learn-more UI widgets ht ...

  8. React Hooks & React v16.8.6

    React Hooks Hooks are a new addition in React 16.8 const [state, setState] = useState(initialState); ...

  9. APP 跳转到支付包小程序

    APP 跳转到支付包小程序 APP选择支付宝支付,会跳转到支付宝小程序再支付 支付包 小程序 我司有自己的APP.生活号,小程序,这种情况下如何和小程序关联,跳转到小程序里去,做到无缝对接? 其实,小 ...

  10. svg insert shape string bug

    svg insert shape string bug not support custom areaProps attributes ??? const svg = document.querySe ...