1.断点调试: Eclipse的断点调试可以查看程序的执行流程和解决程序中的bug.
2.面向对象!!!(划重点)
面向过程,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求.
面向对象思想就是不断的创建对象,使用对象,指挥对象做事情。(如果有对象,直接用对象,对我们直接提供服务).
属性---------成员变量(事物的属性)--------和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
行为---------成员方法(事物的行为)--------和以前定义方法是一样的,只不过把static去掉,后面在详细讲解static的作用。
类:是一组相关的属性和行为的集合(我们班所有的同学都具备相同的属性和行为,比如:姓名,年龄,学习,这样就把所有的学生成为学生类)
对象:是该类事物的具体体现(说某个同学时,他都具备自己特有的属性和行为)
例:(学生类)
public class Student { //成员变量 //姓名 String name; //年龄 int age; //成员方法 //学习的方法 public void study() { System.out.println("好好学习,天天向上"); } //吃饭的方法 public void eat() { System.out.println("学习饿了要吃饭"); } } 学生测试类: public class StudentDemo { public static void main(String[] args) { //格式:类名 对象名 = new 类名(); Student s = new Student(); //System.out.println("s:"+s); //com.itheima_02.Student@193c0cf //直接输出成员变量值 System.out.println("姓名:"+s.name); //null System.out.println("年龄:"+s.age); //0 System.out.println("----------"); //给成员变量赋值 s.name = "林青霞"; s.age = 28; //再次输出成员变量的值 System.out.println("姓名:"+s.name); //林青霞 System.out.println("年龄:"+s.age); //28 System.out.println("----------"); //调用成员方法 s.study(); s.eat(); } } 封装,私有化:private关键字! 是一个权限修饰符。 可以修饰成员(成员变量和成员方法) 被private修饰的成员只在本类中才能访问。 public class Student { String name; //int age; private int age; public void setAge(int a) { if(a<0 || a>200) { System.out.println("你给的年龄有误"); }else { age = a; } } public int getAge() { return age; } public void show() { System.out.println("姓名是:"+name+",年龄是:"+age); } }
package com.itheima_05; /* * 学生类的测试类 */ public class StudentDemo { public static void main(String[] args) { //创建学生对象 Student s = new Student(); s.show(); s.name = "林青霞"; //s.age = 28; //s.age = -28; //s.setAge(-28); s.setAge(28); s.show(); }
} this关键字:代表所在类的对象引用方法被哪个对象调用,this就代表那个对象 在局部变量和成员变量重名的时候使用 构造方法:1.方法名和类名相同 2.没有返回值类型,void也米有 3.没有具体的返回值 3.API: 应用程序编程接口 4.Scanner类与String类 用Scanner类的方法可以完成接收键盘录入的数据 package com.itheima_01; import java.util.Scanner; /* * Scanner:用于获取键盘录入的数据。(基本数据类型,字符串数据) * public String nextLine():获取键盘录入的字符串数据 */ public class ScannerDemo { public static void main(String[] args) { //创建键盘录入对象 Scanner sc = new Scanner(System.in); //接收数据 System.out.println("请输入一个字符串数据:"); String s = sc.nextLine(); //输出结果 System.out.println("s:"+s); } } String(Stringoriginal):把字符串数据封装成字符串对象 String(char[] value):把字符数组的数据封装成字符串对象
String(char[] value, int index, intcount):把字符数组中的一部分数据封装成字符串对象
StringBuilder:是一个可变的字符串。字符串缓冲区类。 String和StringBuilder的区别: String的内容是固定的
StringBuilder的内容是可变的
5.集合 A:基本类型的数组:存储的元素为基本类型 int[] arr={1,2,3,4} B:对象数组:存储的元素为引用类型 Student[]stus=new Student[3]; Student代表一个自定义类 Stus数组中stus[0],stus[1],stus[2]的元素数据类型为Student,
都可以指向一个Student对象
package com.itheima; /* * 创建一个学生数组,存储三个学生对象并遍历 * * 分析: * A:定义学生类 * B:创建学生数组 * C:创建学生对象 * D:把学生对象作为元素赋值给学生数组 * E:遍历学生数组 */ public class StudentDemo { public static void main(String[] args) { //创建学生数组 Student[] students = new Student[3]; //创建学生对象 Student s1 = new Student("曹操",40); Student s2 = new Student("刘备",35); Student s3 = new Student("孙权",30); //把学生对象作为元素赋值给学生数组 students[0] = s1; students[1] = s2; students[2] = s3; //遍历学生数组 for(int x=0; x<students.length; x++) { Student s = students[x]; //System.out.println(s); System.out.println(s.getName()+"---"+s.getAge()); } } } ArrayList集合: package com.itheima_01;
import java.util.ArrayList;
* 集合类的特点: * 长度可变。 * * ArrayList<E>: * 大小可变数组的实现 * * <E>:是一种特殊的数据类型,泛型。 * 怎么用呢? * 在出现E的地方我们使用引用数据类型替换即可 * 举例:ArrayList<String>,ArrayList<Student> * * 构造方法: * ArrayList() * * 添加元素: * public boolean add(E e):添加元素 * public void add(int index,E element):在指定的索引处添加一个元素 */ public class ArrayListDemo { public static void main(String[] args) { //创建集合对象 ArrayList<String> array = new ArrayList<String>(); //add(E e):添加元素 array.add("hello"); array.add("world"); array.add("java"); //add(int index,E element):在指定的索引处添加一个元素 //array.add(1, "android"); System.out.println("array:"+array); }
} ArrayList的删改: package com.itheima_01;
import java.util.ArrayList;
/* * 获取元素 * public 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 ArrayListDemo2 { public static void main(String[] args) { //创建集合对象 ArrayList<String> array = new ArrayList<String>(); //添加元素 array.add("hello"); array.add("world"); array.add("java"); //public E get(int index):返回指定索引处的元素 //System.out.println("get:"+array.get(0)); //System.out.println("get:"+array.get(1)); //System.out.println("get:"+array.get(2)); //public int size():返回集合中的元素的个数 //System.out.println("size:"+array.size()); //public boolean remove(Object o):删除指定的元素,返回删除是否成功 //System.out.println("remove:"+array.remove("world"));//true //System.out.println("remove:"+array.remove("world"));//false //public E remove(int index):删除指定索引处的元素,返回被删除的元素 //System.out.println("remove:"+array.remove(0)); //public E set(int index,E element):修改指定索引处的元素,返回被修改的元素 System.out.println("set:"+array.set(1, "android")); //输出 System.out.println("array:"+array); }
} 学生管理系统! IO流: IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中
流按流向分为两种:输入流,输出流 FileWriter a:使用FileWriter流关联文件 b:利用FileWriter的写方法写数据 c:利用FileWriter的刷新方法将数据从内存刷到硬盘上
d:利用FileWriter的关流方法将释放占用的系统底层资源 缓冲流BufferedWreiter BufferedReader BufferedWriter void newLine():写一个换行符,这个换行符由系统决定,不同的操作系统newLine()方法使用的换行符不同 windows:\r\n linux:\n mac:\r BufferedReader
String readLine():一次读取一行数据,但是不读取换行符
示例 package com.itheima_06; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList;
/* * 从文本文件中读取数据到ArrayList集合中,并遍历集合 * 每一行数据作为一个字符串元素 * * 分析: * A:创建输入缓冲流对象 * B:创建集合对象 * C:读取数据,每次读取一行数据,把该行数据作为一个元素存储到集合中 * D:释放资源 * E:遍历集合 */ public class FileToArrayListTest { public static void main(String[] args) throws IOException { //创建输入缓冲流对象 BufferedReader br = new BufferedReader(new FileReader("array.txt")); //创建集合对象 ArrayList<String> array = new ArrayList<String>(); //读取数据,每次读取一行数据,把该行数据作为一个元素存储到集合中 String line; while((line=br.readLine())!=null) { array.add(line); } //释放资源 br.close(); //遍历集合 for(int x=0; x<array.size(); x++) { String s = array.get(x); System.out.println(s); } } }
|