黑马程序员技术交流社区
标题: Java12期技术贴以及总结(下) [打印本页]
作者: 彼岸浮生梦 时间: 2018-4-3 01:18
标题: Java12期技术贴以及总结(下)
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);
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |