一、类与对象

1、概念
类:一种事物的统称,比如:人类、鸟类······
对象:指一个具体实物,比如:桌子、狗······
2、面向对象的三大特征:封装、继承、多态。
3、对象中只含属性跟方法两个方面,属性的话可以理解为字面意思,就比如事物的颜色、大小、等都属于属性范围,是个静态概念(或理解为名词)。方法是指一般为了获得某种东西或达到某种目的而采取的手段与行为方式。
4、注意事项
1)、一个文件中只能有一个public class
2)、类型与文件名相同
3)、类名首字母要大写
4)、注意大括号的位置
5、public class 格式:
public class 类名{

//定义属性部分
		属性x的类型  属性x;

		//定义方法部分 
		方法1;
		方法2;

}
6、创建对象包括堆和栈两部分。
栈内存存放 类别 Dog dog
堆内存存放 变量 new dog()
将堆到栈
Dog dog= new dog () ;

二、定义数组

User [] users =new User  [ n ] ;
       users 里面存的都是User

三、文本输入

scanner :用于扫描输入文本。

import java .until Scanner;
public class void main (String []  args){//定义一个字符串数组,名称为 args
			System.out.println("      ");  //输出语句
			Scanner scn = new Scanner (System.in);
			String m=scn.nextLine();  //输入字符串
			String y=m.toLowerCase();  //将所有输入字符变成小写字母
			char chr  = y.toCharArray()[0];  //将字符串转换成字符
}

四、类的方法

public void run ( ) ,其中public 为访问修饰符 ,void 为返回值类型 ,run 为方法名,()中包含的是参数,可以有也可以没有。

访问修饰符的分类:public 和 private

public:公用修饰符可以被所有的其他类所调用
      private:只能被该类自身所访问

变量范围

类中定义的变量称为全局变量,也叫对象成员的变量,方法中定义的变量叫做局部变量。
获取成员变量是用:this.变量名


注释分类和区别(*号)

1、文档注释
/**
省略中间部分
**/


2、多行注释
/*
省略中间部分
*/


3、单行注释
//注释部分


参数问题

各个参数之间用逗号分隔开(int x,int y),JAVA中参数传递不同与C语言中,它的传递方式是 (x:1,y:2)


属性封装(JAVA特有)

属性封装部分包含三个部分{
1、包含一个私有属性
2、get集合
3、set集合
}
比如:

private String name;
public String getName(){
		return this.name;
}
public void setName(String nmae){
		this.name=name;
}

空指针异常

1、当一个对象为 null 时无法调用其方法
  2、方法为对象的成员,只有现有对象才能调用方法
  3、结果会报NullPointerException

可变参数问题

可变参数问题可以转换成数组处理。
数组的遍历:

int []  a;
	for (int i:a){
		//操作过程
	}
	//可变参数
	(int... args)//形参情况
	int  c= d.sum(... args:1,2,3,4......n){//实参情况
			//操作过程
	}

对于可变参数的注意问题:
1、一个方法中最多有一个可变参数
2、对于有多个参数情况时,可变参数必须放在最后一个


方法重载(重点)

概念:重载是指在一个类中有两个或两个以上的同名字的方法。
区别:这些方法的不同之处在于参数,参数的不同是指:

1、参数个数不同
		2、参数顺序不同

判断是否为同一种方法不能依据参数名称,参数名称不同,参数个数,参数类型以及参数顺序一致时,那两种方法属于同一种方法。

构造方法:

1、对于没有参数的重载叫构造方法
2、显示声明构造方法以后,默认的(无参)构造方法失效
3、构造方法没有返回类型
4、构造方法的方法名跟类名完全相同

pbulic class Dog{   //---类
	public Dog(){  //---构造方法
	}
}

类的静态成员称为类成员,另外还有对象成员
将一个对象成员变为一个类成员的方法就是在对象成员名前面加上 static
例如:

public  static int count ; //类成员
	public int count ;//对象成员

静态方法中不能使用 this ,而且静态方法中只能使用静态成员,所以想要是使用某个成员首先需要将它变为静态成员。
静态代码块(不重要)
概念:在类的第一次初始化前执行一次,它可以更改一些静态属性值。


final 关键字 定义常量

单例模式

概念:原则上一个类只能声明一个对象,只能new一次,在类中声明一个私有对象,且该对象为静态对象。


字符串操作

length()获取字符串长度,str.equals(String value)是比较括号中的字符串是否与str相同,返回结果是true或者false两者中的一个。

String   str="aB34";
			t=str.equals("ab34");//t=false

字符串的连接符号是:“+”或者使用concat()方法
字符串的大小写转换:

toLowerCase()//转换成小写	
toUpperCase()//转换成大写

**转换以后原字符串并不发生改变,只是将改变以后的字符串重新定义为一个字符串

a.contains(String str):判断a字符串中是否含有字符串str


字符串问题

str.indexOf():返回指定字符或字符串第一次出现的位置(默认查找方法是从前往后查找),str.lastindexOf()表示从后往前找第一次出现的位置。他们的返回值都是数值,没有找到的话返回值是-1。


字符串截取:substring(参数)
其中参数可以只传一个值表示开始截取的位置,或者两个值截取中间部分,两个值的话是前闭后开,比如str.substring(3,6)就是截取其中的str[3],str[4],str[5]三个位置的字符。


str.trim():去除字符串中的空格,细分的话可分为左去除跟右去除两种方法。


字符串的拆分:split(“,”)表示以逗号为分割符对字符串进行分割,最后以字符串数组的形式返回。


字符串中的字符替换:str.replace(String str,String a)将字符串中的str串用字符串a来替换。


正则化问题

此处我们介绍的是完全匹配规范问题
正则规范概念:一个用来描述字符串规则的字符串,返回值是布尔类型,true或者false。

String bank ="abc";
String regex="abc";//正则表达式
boolean b=bank.matches(regex);//b=true

如何用正则化来定义变量:

变量要求以小写字母、下划线开头后面可以是小写字母、数字或者下划线,所以最终表示为:[ _ a-z][ _a-zA-Z0-9 ]*,中括号表示所要选择的范围,*号表示后面重复零次或者更多次。

^号表示取反,[^ _ a-z]表示除了下划线跟小写字母都可以。

下面是正则表达式中常用限定符跟元字符:

限定符

JAVA类与对象 java类与对象知识点总结_JAVA类与对象


元字符

JAVA类与对象 java类与对象知识点总结_字符串_02


JAVA类与对象 java类与对象知识点总结_构造方法_03


关于正则化符号的功能测试链接:


String Buffer()

String Buffer()用法类似于指针,是一种块式链结构。

常规字符串相加与String Buffer的区别:

String a;
String b;

StringBuffer sb=new StringBuffer(a );//声明
String str=sb.append(b);//应用

常规的相加是先计算字符串a和字符串b的长度,然后生成一个大小等于a+b长度的新的字符串str,然后将字符串a和b放入新的字符串str中,然后释放字符串a和b的空间。 而String Buffer()是将字符串a的最后位置指向b的起始位置,可以用指针来理解。


异常处理

概念: 异常是指在程序运行过程中所发生的不正常的事件,它会中断正在运行的程序。
处理方法: try-catch语句
将可能出现异常的代码放入try中,对于出现的异常处理操作放入catch中

try {
		//可能出现的异常代码
	}catch(Exception e){
		//异常处理代码
	}

其中Exception是要捕获的异常类型

finally{
	//代码
	}

无论是否出现异常finally语句块中都会执行

JAVA类与对象 java类与对象知识点总结_字符串_04

常见异常类型:

JAVA类与对象 java类与对象知识点总结_JAVA类与对象_05


黑色的属于运行异常,其他属于非运行异常,而对于非运行异常可以通过try-catch语句进行处理。


throw与throws的区别:

同:若抛出的异常一直未被捕获则程序会被终止。
异:throw写在程序中任意位置像return一样可以结束整个方法的运行,throws写在方法声明后面,抛出方法中可能存在的异常。


文件操作问题

头文件:java.io.File; :File表示文件或文件夹
new File(String pathname):创建文件对象
pathname :文件路径,如“d:/text.txt”或者“d:\text.txt”,为防止转义字符出现歧义,所以通常用第一个来声明文件路径。

File f = new File();
f.mkdir();//创建一个文件夹

我们在删除一个文件夹的时候它里面可能含有其他文件或者文件夹,因为delete只能删除空文件夹所以需要先把文件夹里的东西清除,我们这里用到了递归操作。

删除一个非空的文件夹:

JAVA类与对象 java类与对象知识点总结_字符串_06