Java是一种面向对象的编程语言,面向对象强调的是对象,不强调步骤过程。面向对象的语言都具有三大特征:封装、继承、多态。
类: 一组相关属性和行为的集合。属性: 该事物的状态信息 ;行为: 该事物能做什么。对象: 是一类事物的具体体现,是类的一个实例,具有该类的属性和行为。
类是对象的模板(抽象的),对象是类的实体(具体的)。
类的格式:修饰符 类名{ 成员变量;成员方法 };
成员变量: 具有默认值,在类中,方法外;成员方法: 与定义方法一样,无static关键字。
创建对象: 类名 对象名 = new 类名();
访问类中成员: 对象名.成员变量;访问成员方法: 对象名.成员方法。
成员变量和局部变量的区别:
区别 成员变量 局部变量 位置 类中,方法外 方法中或方法声明上(形参) 作用范围 类中 方法中 初始化值 有默认值 没有默认值,定义赋值后才能使用 内存位置 堆内存 栈内存 生命周期 随着对象创建或消失 随着方法调用存在,方法完毕后消失
封装:使用private关键字修饰的成员变量,并定义getxxx,setxxx方法。
private是最小权限的权限修饰符,只有本类中才可以直接访问,其他类通过getxxx,setxxx方法访问。
string name; public void setName(String n){ public void getName(){ name = n;` renturn name; } }
封装优化一:this关键字: 表示所在类当前对象的引用(地址值),即对象自己的引用。解决变量被隐藏。
类中:string name; public void setName(String name){ public String getName(){ this.name = name;` renturn name; } }
封装优化二:构造方法: 修饰符 构造方法名(参数列表){ }.给成员变量初始值。
API:应用程序编程接口。在使用java定义好的类或方法时,要进行导包。 格式:import 包名.类名;
使用构造方法创建对象:数据类型 变量名 = new 数据类型(参数列表);
调用方法:变量名.方法名();
Scanner类:
import java.ytil.Scanner; //创建键盘输入数据对象 Scanner sc = new Scanner(System.in).; //接收数据 int i = sc.nextInt();
匿名对象:没有变量名的对象,作为方法的参数和返回值。 new 类名(参数列表);如:new Scanner(System.in);
Random类:产生伪随机数。
import jsva.util.Random; Random r = new Random(); r.nextInt(int n); //随机生成一个[0~n)的int值。
ArrayList类:可变的数组,且自动增长。
格式:ArrayList< E > 名字 = new ArrayList< E >();
E:泛型,用引用数据类型代替。
add(E e):增加元素到集合尾部;
remove(int index):移除指定位置元素;
get():返回指定位置的元素;
size():返回元素个数。即集合长度。
存储基本数据类型: 使用基本类型包装类
int->Integer, char->Character;其他基本类型首字母大写即可。
String类:
//无参构造 //通过字符数组构造 //通过字节数组构造 String str = new String(): char chars[] = {'a','b','c'}; char bytes[] = {1,2,3}; String str2 = new String(chars); String str3 = new String(bytes); int length():返回字符串长度。 String concat(String str):指定字符串键结到该字符串末尾。 char charAt(int index):返回索引值处char值。 int indexOf(String str):返回第一次出现该字符串的索引。 String substring(int beginIndex):返回从beginIndex开始截取字符串到末尾的一个字符串。 String substring(int beginIndex, int endIndex):返回从beginIndex到endIndex的字符串,含beginIndex,不含endIndex。 char[] toCharArray:字符串转换成字符数组。 byte[] getBytes():转换成字节数组。 String replace(CharSequence target,CharSequence replacement):target匹配的字符串用replacement代替。 String[] spliit(String regex):按照regex分割字符串为字符串数组。
static关键字:修饰成员变量(类变量)和成员方法(类方法)。主要目的是不创建对象的去调用方法。
类变量:该类每个对象共享同一个类变量的值。
访问类变量:类名.变量名;
静态方法:类方法。尽量用类名调用,不用创建对象。
调用静态方法:类名.静态方法名(参数);
静态代码块:用static修饰的代码块{ }。
Arrays类:使用静态方法操作数组,比如排序和搜索等。
public static String toString(int[] a):返回指定数组的字符串形式。
public static void sort(int[] a):对int类型数组数字按升序排序。
Math类:静态数学方法。
double abs(double a):返回double的绝对值。
double ceil(double a):返回大于等于参数的最小整数。
double floor(double a):返回小于等于参数的最大整数。
long round(double a):四舍五入返回最接近参数的long数。