• java day3


        
    面向对象

    特征:继承,封装跟多态

    类:相关属性和行为的集合

    定义格式

    public class ClassName{

    成员变量

    成员方法

    }

    1,成员方法不要写static关键字

    2,成员变量是直接定义在类中,在方法外

    public class student {

      String name;
      int age;

      public void eat() {
        System.out.println("eat");
    }


      public void sleep() {
        System.out.println("sleep");
    }

      public void study() {
        System.out.println("study");
    }
    }

    使用

    1,导包

    2,创建

    类名 对象名 = new 类名称();

    student stu = new student();

    3,使用

    想用谁,就用对象名点谁;

    public class JAVA1 {

      public static void main(String[] args) {
        student stu = new student();
        stu.name = "frfgrf";
        stu.age = 15;
          System.out.println(stu.age);
          System.out.println(stu.name);
        stu.eat();
        stu.sleep();
        stu.study();
    }

    }

    局部变量没有默认值,如果想使用必须手动赋值。位于栈内存

    成员变量,若没有赋值,会有默认值,规则跟数组一样。位于堆内存

    封装性

    方法就是一种封装

    可以用private关键字将需要保护的成员变量进行修饰

    间接访问private成员变量,设置一堆set/get方法

    setXXX() 不能有返回值,参数类型和成员变量相同

    getXXX() 不能有参数,返回值类型与成员变量对应

    对于基本类型中的bool型,getXXX一定要写成isXXX

    package demo2.java;

    public class Student {

      private String name;
      private int age;
      private boolean male;


    public void setName(String str) {
      name = str;

    }
    public String getName() {
      return name;

    }

    public void setAge(int num) {
      age = num;

    }
    public int getAge() {
      return age;

    }

    public void setMale(boolean b) {
      male = b;

    }

    public boolean isMale() {
      return male;

    }


    }

    package demo2.java;

    public class students {

    public static void main(String[] args) {
    // TODO Auto-generated method stub
      Student student = new Student();
      student.setAge(18);
      student.setName("marry");
      student.setMale(false);


      System.out.println("name is: " + student.getName());
      System.out.println("age is: " + student.getAge());
      System.out.println("is or not male: " + student.isMale());
    }

    }

    封装优化1——this关键字

    方法局部变量和类成员变量重名的时候,就近原则,优先使用 局部变量

    需要访问本类的成员变量,需要使用 this.成员变量名(通过谁调用的方法,谁就是this【地址】)

    package demo3.java;

      public class Person {
        String name;
       public void sayHello(String name) {
        System.out.println(name + ", hello i am " + this.name);

    }
    }

    package demo3.java;

      public class demoperson {

        public static void main(String[] args) {
    // TODO Auto-generated method stub
          Person person = new Person();
          person.name = "wang si cong";
          person.sayHello("ma yun ");
    }

    }

    封装优化2——构造方法

    专门用来创建对象的方法,通过关键字new创建对象时,其实就是住在调用构造方法

    public 类名称(参数类型 参数名称){

    方法体

    }
    1,构造方法的名称必须跟类名称完全一致
    2, 不需要写返回值类型, 连void都不写
    3, 不能return一个具体的返回值
    4, 如果没有编写任何构造方法,编译器会赠送一个,没有参数,方法体什么事都不做


    标准代码——JavaBean
    1,所有成员变量都要使用private关键字
    2,编写一个无参数跟全参数的构造方法
    public class Student {
    //成员变量
      private String name;
      private int age;
    //构造方法
    public Student() {}
      public Student(String name,int age) {
        this.name = name;
        this.age = age;
    }
    //成员方法
      publicvoid setName(String name) {
        this.name = name;
    }
      public String getName() {
        return name;
    }
      publicvoid setAge(int age) {
        this.age = age;
    }
      publicint getAge() {
        return age;
    }
    }


    public class TestStudent {
      public static void main(String[] args) {
    //无参构造使用
        Student s= new Student();
        s.setName("柳岩");
        s.setAge(18);
        System.out.println(s.getName()+"‐‐‐"+s.getAge());
    //带参构造使用
        Student s2= new Student("赵丽颖",18);
        System.out.println(s2.getName()+"‐‐‐"+s2.getAge());
    }
    }


    SCANNER类


    可以实现键盘输入数据到程序当中
    只有java.lang下不需要导包
    import java.util.Scanner;
    public class Scanner_ {

       public static void main(String[] args) {
          Scanner sc = new Scanner(System.in);
          String str = sc.next();
          System.out.println(str);
          int num = sc.nextInt();
          System.out.println(num);
    }

    }


    练习1 键盘输入两个数字求和
    import java.util.Scanner;
    public class Scanner_ {

      public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        System.out.println(num1+num2);


    }

    }

    Random类

    import java.util.Random

    生成1,n之间随机数


    import java.util.Random;

    public class demo {

      public static void main(String[] args) {
        int n = 10;
        Random r = new Random();
        for (int i =0;i<100;i++) {
          int num = r.nextInt(n)+1;
          System.out.println(num);
    }

    }

    }

    猜数字小游戏 【1,100】

    package demo3.java;

    import java.util.Random;
    import java.util.Scanner;
    //1,产生随机数
    //2.键盘输入
    //3.获取键盘输入
    //4.if判断 提示太大或者太小并且重试,猜中游戏结束
    //5.重试就是再来一次, 不确定次数,用while

    package demo3.java;

    import java.util.Random;
    import java.util.Scanner;
    //1,产生随机数
    //2.键盘输入
    //3.获取键盘输入
    //4.if判断 提示太大或者太小并且重试,猜中游戏结束
    //5.重试就是再来一次, 不确定次数,用while


    public class NumGame {

      public static void main(String[] args) {

        Random r = new Random();
        int answer = r.nextInt(100)+1;
        Scanner sc = new Scanner(System.in);
        System.out.println("Please input the number you guess : ");
        int count = 0;
        while (true) {
          if(count==10) {
          System.out.println("Your chance has run out,Game Over! ");
          break;}
          int guessNmuber = sc.nextInt();
          if (guessNmuber > answer) {
            count+=1;
          System.out.println("Your number is higher than the answeer, Please try again!");
          }else if(guessNmuber < answer) {
            count+=1;
          System.out.println("Your number is lowerr than the answeer, Please try again!");
          }else {
          System.out.println("Congratulations! Your guess is right");
            break;
    }

    }System.out.println("Game Over");
    }

    }

    对象数组


    ArryList长度是可变的
    ArrayList<E> 泛型(只能是引用类型)

    若想往集合中存储基本类型数据,必须使用基本类型对应的包装类

    byte --->Byte

    short --->Short

    int ---->Integer

    long ---->Long

    float --->Float

    double --->Double

    char ---->Character

    boolean --->Boolean

    自动装箱,基本类型 -----》引用类型
    自动拆箱,引用类型------》基本类型
    创建
    ArrayList<String> list = new ArrayList<String>();

    直接打印得到的是内容,若为空,打印【】

    常用方法


    public boolean add(E e) :将指定的元素添加到集合的尾部。

    public E remove(int index) :移除集合中指定位置的元素。返回被删除的元素。

    public E get(int index) :返回此集合中指定位置上的元素。返回获取的元素。

    返回值代表操作是否成功

    public int size() :返回此集合中的元素数。遍历集合时,可以控制索引范围,防止越界。


    import java.util.ArrayList;

    public class DemoArryList {

      public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<String>();
        list.add("wenlong");
        list.add("sbg");
        list.add("ggr");
        list.add("gerg");

        System.out.println(list);
        System.out.println(list.get(2));
        System.out.println(list.remove(2));
        System.out.println(list);
        System.out.println(list.size());
        for(int i = 0;i<list.size();i++) {
        System.out.println(list.get(i));
    }
    }

    }


    生成6个1~33之间的随机整数,添加到集合,并遍历

    import java.util.Random;

    import java.util.ArrayList;

    public class DemoAlist {

      public static void main(String[] args) {
        Random num = new Random();

        ArrayList<Integer> intList = new ArrayList<Integer>();

      for(int i =0;i<6;i++) {
        int temp = num.nextInt(33) + 1;
        intList.add(temp);
    }

        System.out.println(intList);

        for(int i = 0;i<intList.size();i++) {
        System.out.println(intList.get(i));
    }

    }

    }

    自定义4个学生对象,添加到集合,并遍历

    import java.util.ArrayList;

    public class StudentArrayList {

      public static void main(String[] args) {
    // TODO Auto-generated method stub
        ArrayList<Student> studentlist = new ArrayList<Student>();
        Student stu1 = new Student("zhao",18);
        Student stu2 = new Student("qian",28);
        Student stu3 = new Student("sun",38);
        Student stu4 = new Student("li",48);

        studentlist.add(stu1);
        studentlist.add(stu2);
        studentlist.add(stu3);
        studentlist.add(stu4);
        for(int i = 0;i<studentlist.size();i++) {
          System.out.println(studentlist.get(i).getName() + studentlist.get(i).getAge());
    }

    }


    定义以指定格式打印集合的方法(ArrayList类型作为参数),使用{}扩起集合,使用@分隔每个元素。格式参照 {元素
    @元素@元素}。

    import java.util.ArrayList;
    public class Pt {

      public static void main(String[] args) {

      ArrayList<String> list = new ArrayList<String>();

        list.add("张三丰");
        list.add("宋远桥");
        list.add("张无忌");
        list.add("殷梨亭");
    // 调用方法
        ptArry(list);
    }

      public static void ptArry(ArrayList<String> list) {
        System.out.print("{");
        for(int i =0;i<list.size();i++) {
        
        if(i!=list.size()-1) {
        System.out.print(list.get(i)+"@");

        }else {
        System.out.print("}");
        }
        }

    }

    定义获取所有偶数元素集合的方法(ArrayList类型作为返回值)
    import java.util.ArrayList;
    import java.util.Random;
    public class EvenSelect {

      public static void main(String[] args) {
     
        ArrayList<Integer> list = new ArrayList<Integer>();
        Random num = new Random();
        for(int i = 0;i<20;i++) {
        int temp = num.nextInt(80);
        list.add(temp);
    }

        System.out.println(SelectEven(list));
    }
      public static ArrayList<Integer> SelectEven(ArrayList<Integer> list) {
        ArrayList<Integer> evenList = new ArrayList<Integer>();
        for(int i =0;i<list.size();i++) {
        if(list.get(i)%2==0) {
        evenList.add(list.get(i));
      }
      }
        return evenList;
    }

    }

  • 相关阅读:
    rails 相关文件
    linux学习---vi进行多行的copy,cut
    设计
    互联网---现在正在变成过去
    testing
    TTl
    如何成为优秀的性能测试工程师
    linuX学习
    Programiz 中文系列教程·翻译完成
    Programiz C 语言教程·翻译完成
  • 原文地址:https://www.cnblogs.com/njuwyx/p/12656982.html
Copyright © 2020-2023  润新知