A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

内容<方法>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:从字符输入流中读取文本,缓冲各个字符,从而实现,数组和行的高效读取




基础班的内容基本都在这里.有需要技术讨论可以论坛@我.

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马