内容<方法>to<IO流>
day05
方法:其实就是完成特定功能的代码块
定义格式:
修饰符 返回值类型 方法名(参数类型 参数1 ,参数类型 参数2....){
方法体;
reture 返回值;
}
import java.util.Scanner;
public class Demo01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数据");
int x = sc.nextInt();
System.out.println("请输入第二个数据");
int y = sc.nextInt();
int a = sum(x,y);
System.out.println(a);
}
public static int sum(int a,int b){
int max;
if(a > b){
max = a;
}else{
max =b;
}
return max;
}
}
void修饰的方法只能单独调用
当方法中没有任何内容需要返还给调用者时,用void修饰返还值类型
方法重载:在同一个类中,参数列表不同,于返回值无关
参数类别不同:
参数个数不同
参数对于的数据类型不同
注意:
在调用方法的时候,java虚拟机会通过参数列表的不同来区分同名的方法
day06
面向对象的编程
面向过程:
强调的是每一步功能的步骤
面向对象:
强调的是对象,然后由对象去调用功能
面对对象的思想特点
A: 是一种更符合我们思考习惯的思想
B: 可以将复杂的事情简单化
C: 将我们从执行者变成了指挥者
Java语言最基本的单位是类,所以,我们在后面的学习过程中,是通过类来体现现实世界事物
事物: 包含 属性 和 行为
属性:
事物的描述信息(事物身上的名词)
汽车: 轮胎数量,颜色
行为:
事物能够做什么(事物身上的动词)
汽车: 跑
类:
成员变量
成员方法
成语变量: 和我们前面学习过的变量的定义是一样的
位置不同: 类中,方法外
初始化值: 不需要给初始化值
public class Student{
String name;
int age;
public void study(){
System.out.println("好好学习,天天向上");
}
public void eat(){
System.out.println("学习饿了要吃饭");
}
}
public class Demo {
public static void main(String[] args) {
Student s = new Student();
s.name = "林青霞";
s.age = 23;
System.out.println(s.name);
System.out.println(s.age);
s.eat();
s.study();
}
}
file:///C:/Users/WangJian/AppData/Local/Temp/enhtmlclip/无标题.png
面向对象的三大特性
封装
继承
多态
构造方法:
给对象的数据进行初始化
格式: 类名 对象名 = new 构造方法(...);
Students s = new Students( );
this能辨别成员变量和局部变量的重名
用private修饰的属性只能在本类中调用,需要创建gei,set方法
day07
String: 字符串类
由多个字符组成的一串数组
字符串区本质是一个字符数组
构造方法:
String(String original): 把字符串数据封装成字符串对象
String(char[ ] value): 把字符数据封装成字符串对象
String(char[ ] value, int index, int count): 把字符数组中的一部分封装成字符数串对象
String类的判断功能:
s1.equals(Object obj): 比较字符串的内容是否相同
s1.equalsIgnoreCase(String str): 比较字符串的内容是否相同,忽略大小写
s1.endsWith(String str): 判断对象是否已str结尾
s1.startsWith(String str): 判断对象是否已str开头
import java.util.Random;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
String name = "admin";
String password = "admin";
Scanner sc = new Scanner(System.in);
int count = 0;
for (int i = 0; i < 3; i++) {
System.out.println("请输入用户名");
String name1 = sc.nextLine();
System.out.println("请输入密码");
String password1 = sc.nextLine();
if (name.equals(name1) && password.equals(password1)) {
System.out.println("登陆成功");
break;
} else {
count++;
if (count == 3) {
System.out.println("账户已锁定,请联络管理员");
break;
}
System.out.println("登陆失败,你还有" + (3 - count) + "次机会");
}
}
}
}
String类的获取功能:
s1.length( ): 获取字符串的长度,其实也就是字符个数
s1.charAt(int index): 获取指定索引处的字符
s1.intdexOf(String str): 获取str在字符串对象中第一次出现的索引
s1.substring(int start): 从start开始截取字符串
s1.substring(int start , int end); 从start开始,到end结束截取字符串
public class Demo{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("输入字符串");
String s = sc.nextLine();
int x = 0;
int y = 0;
int z = 0;
char[] ch = s.toCharArray();
for(int i = 0;i < ch.length;i++){
if(ch[i] > 'a' && ch[i] < 'z'){
x++;
}
if(ch[i] > '0' && ch[i] < '9'){
y++;
}
if(ch[i] > 'A' && ch[i] < 'Z'){
z++;
}
}
System.out.println("字符串"+s+"小写字母:"+x+"个,大写字母:"+z+"个,数字:"+y+"个");
}
}
s1.toCharArray( ): 字符串变成字符数组
s1.toLowerCase( ): 小写
s1.toUpperCase( ): 大写
String的其他功能
s1.trim( ): 去除字符串两端的空格
String[] s1.split(String str): 按照指定符合分割字符串
public class Demo{
public static void main(String[] args) {
int[] arr = {3,4,5,6,7,7,8};
qwer(arr);
}
public static String qwer(int[] arr){
String s = "";
for(int x = 0;x <arr.length;x++){
if(x == 0)
System.out.print("["+s+arr[x]+",");
else if(x < arr.length-1)
System.out.print((s+arr[x])+",");
else
System.out.println((s+arr[x])+"]");
}
return s;
}
}
StringBulgari: 是一个可变的字符串.字符串缓冲区类
构造方法: StringBuilder sb = new StringBuilder();
sb.capacity( ): 获取sb容器的容量
sb.length( ):sb的内容长度
添加功能:
public StringBuilder append(任意类型)
StringBuilder sb2 = sb.append("hello")
反转功能:
public StringBuilder reverse( )
sb.reverse() ;
String和StringBuilder转换
String对象转Stringbuilder
String a = "abc";
Stringbuilder ab = new Stringbuilder(a);
Stringbuilder 转 String
Stringbuilder ab = new Stringbuilder(“123123123”);
String a = ab.toString();
day08
ArrayList<E>:
大小可变数组的实现
<E>:一种特殊数据类型,泛型.
//创建集合对象
ArrayList<String> array = new ArrayList<Sting>( );
//添加元素
array.add("hello");
获取元素
pubic E get (int index): 返回指定索引出的元素
集合长度
public int size( ): 返回集合中元素的个数
删除元素
public boolean remove(Object o): 删除指定的元素,返回删除是否成功
public E remove(int index): 删除指定索引出的元素,返回被删除的元素
修改元素
public E set(int index,E element): 修改指定索引出的元素,返回被修改的元素
public class Text {
public static void main(String[] args) {
String[] str = {"张三","宋员桥","张无忌","张翠山"};
ArrayList<String> arr = new ArrayList<String>();
for(int x = 0 ;x<str.length;x++){
arr.add(str[x]);
}
for(int x = 0;x < arr.size();x++) {
String s = arr.get(x);
if(s.startsWith("张")){
System.out.println(s);
}
}
}
}
day09
IO流可以把数据存储到文件,也可以从文件中读取数据
FileWriter(String fileName): 传递一个文件名称
import java.io.FileWriter;
import java.io.IOException;
public class IODemo {
public static void main(String[] args) throws IOException {
FileWriter fw = new FileWriter("e:\\a.txt");
fw.write("IO你好");//输入
fw.flush();//刷新
fw.close();//释放资源
}
}
void write(String str): 写一个字符串数据
void write(String str,int index ,int len): 写一个字符串中的一部分数据
void write(int ch): 写一个字符数据,这里写int类型的好处是既可以写char类型的数据,也可以写char类型对应的int类型的值
void write(char[ ] chs): 写一个字符数组
void write(char[ ] chs , int index,int len): 写一个字符数组的一部分
换行:
Windows:\r\n
Linux: \n
mac: \r
追加数据:
FileWriter fw = new FileWriter("e:/a.txt,true");
FileReader(String fileName):传递文件
一次读取一个字符数组:
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class IODemo{
public static void main(String[] args) throws IOException {
FileReader fr = new FileReader("e:/a.txt");
FileWriter fw = new FileWriter("e:/copy.txt");
char[] chs = new char[1024];[
int len;
while((len = fr.read(chs)) != -1){
fw.write(chs);
System.out.println(new String(chs,0,len));
}
fw.close();
}
}
BuffereWriter: 将文本写入输出流,缓冲各个字符,从而提供单个字符,数组和字符串的高效写入
BuffereReader:从字符输入流中读取文本,缓冲各个字符,从而实现,数组和行的高效读取
基础班的内容基本都在这里.有需要技术讨论可以论坛@我.
|
|