方法
什么是方法
方法是程序中最小的执行单元
将重复的代码进行打包,将打包好的代码起个名字
好处:提高代码的复用性,可维护性
方法的定义和调用
最简单的方法
public static void 方法名(){
方法体(就是打包起来的代码);
}
方法名();
带参数的方法
当方法的数据不明确时使用
public static void 方法名(参数类型 参数1,参数类型 参数2){
方法体(就是打包起来的代码);
}
带返回值的方法
public static 返回值类型 方法名(参数类型 参数1,参数类型 参数2){
方法体(就是打包起来的代码);
return 返回值;
}
方法的重载
在同一个类中,方法名相同,参数不同的方法,与返回值无关
参数不同:个数,类型,顺序
public static void sum(int a,double b){
方法体(就是打包起来的代码);
}
public static void sum(int a,int b){
方法体(就是打包起来的代码);
}
引用数据类型的值传递,传递的是地址值
面向对象
学习获取已有对象并使用
如果没有就自己设计使用
类和对象
类(设计图):是对象共同特征的描述
对象:是真实存在的具体东西
如何定义类
public class 类名{
成员变量(属性)
成员方法(行为)
}
public class Phone{
成员变量(属性)
String brand;
double price;
成员方法(行为)
public void call(){
}
public void playGame(){
}
}
如何得到类的对象
类名 对象名 = new 类名();
Phone p = new Phone();
访问属性:对象名.成员变量
访问行为:对象名.方法名()
封装
对象代表什么,就得封装对应的数据,并提供数据对应的行为
被private修饰的成员变量,如果需要被其他类使用,需要相应的操作
this的作用:区别成员变量和局部变量
this.name就是成员变量
构造方法
作用:
- 创造对象时,由虚拟机自动调用,给成员变量进行初始化
- 对属性进行赋值
构造方法可以重载
修饰符 类名(参数){
方法体
}
public Student(){
}
public Student(String name,int age){
}
如果我们没有写构造方法,虚拟机会给我们加一个空参构造方法
javabean的标准形式
- 属性
- 成员变量(属性)用private修饰
- 构造方法
- 无参
- 全参
- 成员方法
- 针对每一个私有化的成员变量,都需要提供get和set方法
- set方法给成员变量赋值
- get方法获取成员变量的值
- 其他行为(即其他方法)
API
Application Programming Interface 应用程序编程接口
API是别人已经写好的东西,不需要自己编写,直接用就可以
字符串
// 字符数组创建字符串
char[] chs={'a','b','c','d'};
String s1=new String(chs);
System.out.println(s1);//abcd
// 字节数组创建字符串
// 转化为ASCII码
byte[] bytes={96,97,98,99,100};
String s2=new String(bytes);
System.out.println(s2);//`abcd
==号比较的是什么
- 基本类型比的是数据值
- 引用类型比的是地址值
字符串的比较
boolean equals方法(要比较的字符串) | 要完全一样 |
boolean equalsIgnoreCase方法(要比较的字符串) | 忽略大小写的比较 |
StringBuilder
可以看成是一个容器,创建之后里面的内容是可变的
作用:提高字符串的操作效率
StringBuilder构造方法
- append()方法---使用append()方法可实现字符串的拼接操作,返回拼接后的StringBuilder对象。
- reverse()方法---使用reverse()方法可实现StringBuilder字符串的反转操作。
- length()方法---返回长度(字符出现的个数)
- toString()方法---通过toString()就可以实现把StringBuilder转换为String
StringBuilder sb = new StringBuilder("hello");
sb.append("world");
sb.delete(5,8); //删除索引范围为[5,8)内的所有内容,即从w开始删除到l之前
System.out.println(sb); //输出hellold
链式编程
// 链式编程
// 在调用一个方法的时候,不需要用变量接收他的结果,可以继续调用其他方法
int len=getString().substring(1).replace("A","Q").length();
public static String getString() {
Scanner sc= new Scanner(System.in);
System.out.println("请输入一个字符串");
String str=sc.next();
return str;
}
演示案列
public class StringBuilderDemo {
public static void main(String[] args) {
// 创建对象
StringBuilder sb=new StringBuilder();
// 添加字符串
sb.append("aaa").append("bbb").append("ccc");
// 打印
System.out.println(sb);
// 把StringBuilder变回字符串
String str =sb.toString();
System.out.println(str);
}
}
综合案列---对称字符串
import java.util.Scanner;
public class StringBuilderDemo1 {
public static void main(String[] args) {
// 键盘接受一个字符串,判断出该字符串是否是对称字符串,打印出是或者不是
// 1.键盘输入一个字符串
Scanner sc=new Scanner(System.in);
// StringBuilder inputStr=new StringBuilder();
System.out.println("请输入一串字符串");
String inputStr= sc.next();
// 2.将字符串反转
StringBuilder reserveStr=new StringBuilder();
reserveStr.append(inputStr);
reserveStr.reverse();
System.out.println(reserveStr);
// 通过toString()就可以实现把StringBuilder转换为String
String result = reserveStr.toString();
// 这里可以链式编程
String result1=new StringBuilder().append(inputStr).reverse().toString();
// 3.判断是否相同
// equals方法(要比较的字符串) 要完全一样
if (inputStr.equals(result)){
System.out.println("是");
}
else
System.out.println("不是");
}
}
StringJoiner
跟StringBuilder一样,可以看成一种容器,内容可以变化
构造方法
方法名 | 说明 |
public StringJoiner(间隔符号) | 创建一个StringJoiner对象,指定拼接时的间隔符号 |
public StringJoiner(间隔符号,开始符号,结束符号) | 创建一个StringJoiner对象,指定拼接时的间隔符号,开始符号,结束符号 |
成员方法
方法名 | 说明 |
add | 添加数据,并返回对象本身 |
length | 返回长度(字符出现的个数) |
toString | 返回一个字符串(该字符串就是拼接之后的结果) |
// 创建一个对象
StringJoiner sj=new StringJoiner("---");
// 添加元素
sj.add("aaa").add("bbb").add("ccc");
// 打印结果
System.out.println(sj);
集合
集合和数组的特点
数组(长度固定) | 集合(长度可变) |
可存储基本类型 | 不可存储基本类型,需要包装--->包装类 |
可存储引用类型 | 可存储引用类型 |
创建集合
ArrayList<String> list = new ArrayList<String>();
集合的方法
方法 | 作用 |
add | 添加 |
remove | 删除 |
set | 修改 |
get | 查询 |
size | 长度 |
public class ArrayListDemo1 {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<String>();
// 1.添加
list.add("aaaa");
list.add("aaaa");
list.add("bbbb");
list.add("dddd");
// System.out.println(list);
// 2.删除
list.remove("aaaa");
String str=list.remove(0);
System.out.println(str);//aaaa返回的是被删除的内容
// 3.修改
list.set(0,"gggg");
System.out.println(list);
// 4.查询
String str1=list.get(0);
System.out.println(str1);//[gggg, dddd] gggg
// 5.长度 可遍历
for (int i = 0; i < list.size(); i++) {
String result=list.get(i);
System.out.println(result);
}
}
}