zoukankan      html  css  js  c++  java
  • Java之路

    1.创建类

    成员变量 - - 既属性

    成员方法 -  -   - public void eat(){}   没有static !!

    实例化格式: 类名称 对象名称 = new 类名称();

     使用对象类型作为方法的参数: 代码:

    public class FaceObject {
        public static void main(String[] args) {
            Student s1 = new Student();
            System.out.println(s1.age);
            s1.eat();
            meetingMethod(s1);
        }
        public static void meetingMethod(Student x){
            System.out.println(x.age);
            x.eat();
        }
    
    }

    2.局部变量和成员变量的不同

    1.定义的位置不同!!!

      局部变量,在方法的内部

      成员变量,在方法的外部,直接写在类当中

    2.作用范围不一样!!!

      局部变量,只有方法当中才可以使用

    3.默认值不一样

      局部变量,没有默认值

      成员变量,如果没有赋值,默认会有一个起始值,规则和数组一样

    4.内存的位置不一样

      局部变量:位于栈内存

      成员变量:位于堆内存

    5.生命周期

      局部变量:随着方法进栈而诞生,随着方法出栈而消失

      成员变量:随着对象创建而诞生,随着对象垃圾回收而消失

    3.  Private关键字

    private的含义
    1. private是一个权限修饰符,代表最小权限。
    2. 可以修饰成员变量和成员方法。
    3. 被private修饰后的成员变量和成员方法,只在本类中才能访问。

    可以通过setXxx 和 getXxx 的方法对成员变量进行限定:

    public class Student{
        //成员变量
        String name;
        private int age;
    
        //成员方法
        public void introduce(){
            System.out.println("大家好,我是" + name + "年龄:" + age );
        }
        //专门用于向成员变量age设置数据
        public void setAge( int num){
            if(num >= 0 && num <= 100){
                age = num;
            }else{
                System.out.println("您输入的数据不合理");
            }
        }
    
        //这个方法用于获取age数据
        public int getAge(){
            return age;
        }
      public boolean isMale(){ //布尔值的getter方法比较特殊
    return true;
    }
    }

    此时其他类想访问时就只能通过setter和getter方法对age进行设定和取值了

    4.this关键字

    谁调用的方法,谁就是this

    用于类内部方法的参数和成员变量重名时区分

    5.构造方法

    一个完整的类:

    public class Student{
        private String name;
        private int age;
        private boolean male;
    
        //无参数的构造方法
        public Student(){}
    
        //全参数的构造方法
        public Student(String name, int age, boolean male){
            this.name = name;
            this.age = age;
            this.male = male;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            this.age = age;
        }
    
        public boolean isMale() {
            return male;
        }
    
        public void setMale(boolean male) {
            this.male = male;
        }
    }

     6.API、Scanner类

    API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的 字典 ,是JDK中提供给我们使用的类的说明文档。

    这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学习这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。

    只有java.lang下的类不需要导包,其他都需要 import+路径.类名称;  来进行导入

    Scanner类的功能可以实现键盘输入,输入数据到程序当中

    (1)获取键盘输入的数字或者字符串

    // System.in 表示从键盘输入
            Scanner s1 = new Scanner(System.in);
            int num = s1.nextInt();  //其实这里是把获取的字符串转换为了数字
            System.out.println("用户在键盘输入的数字为" + num);
            //获取键盘输入的字符串
            String str = s1.next();
            if(str != "小三"){
                System.out.println("你不是我的主人!");

    7.匿名对象

    只有右边的创建对象,没有左边的赋值语句  匿名对象只能使用唯一的一次,下次再用不得不在创建一个新对象;

    使用场景:

    public class DemoScanner{
        public static void main(String[] args) {
            //匿名对象的使用
            int num = new Scanner(System.in).nextInt();
            System.out.println("输入的数值为" + num);
        }
    }

    匿名对象作为方法的参数和返回值的情况:

    public class DemoScanner{
        public static void main(String[] args) {
            //匿名对象的使用
            int num = new Scanner(System.in).nextInt();
            System.out.println("输入的数值为" + num);
            
            //Scanner匿名对象作为参数传入方法中
            methodS(new Scanner(System.in));
            
            //从方法中获取匿名对象并使用
            Scanner s1 = methodReturn();
            int num1 = s1.nextInt();
            System.out.println(num1);
        }
        public static void methodS(Scanner s){
            int num = s.nextInt();
            System.out.println("输入的是" + num);
        }
        public static Scanner methodReturn(){
            return new Scanner(System.in);
        }
    
    }
    参数和返回值

    8.Random类  - 用来生成随机数字

    nextInt()方法:生成的数字有正负

    它的重载方法可以加参数,参数为左闭右开区间  nextInt(3) 的区间为[0-3)

    练习:随机生成13到25的数字

    public class DemoRandom {
        public static void main(String[] args) {
            Random r = new Random();
            //随机生成13到25的数字
            for (int i = 0; i < 10; i++) {
                int num1 = r.nextInt(13)+13;
                System.out.println(num1);
            }
        }
    }

    数字猜谜游戏:

    import java.util.Random;
    import java.util.Scanner;
    
    public class DemoRandom {
        public static void main(String[] args) {
            int snum = new Random().nextInt(100);
            System.out.println(snum);
            while(true) {
                System.out.println("请输入您猜的数字");
                int num = new Scanner(System.in).nextInt();
                if (num > snum) {
                    System.out.println("你猜错啦!数字大了");
                } else if(num == snum){
                    System.out.println("回答correct");
                    break;
                }else{
                    System.out.println("数字小了");
                }
            }
            System.out.println("恭喜回答正确游戏结束");
            }
            }
    数字猜谜游戏

     8.ArrayList <E>   集合

    <E>   指的是 < - - - 泛型 : 也就是装在集合当中的所有元素,全都是统一的什么类型。

    !!!泛型只能是引用类型,不能是基本类型!

    直接打印得到的不是地址值,而是内容

    (1)public boolean add(E,e)方法 - - - 添加元素  必须和创建类型一致 返回值 代表添加是否成功

    (2)public E get ( int index)方法 - - -  从集合中获取元素 返回值为泛型的类型 

    (3)public E remove (int index)方法 - - - 从集合中删除元素 返回值类型为泛型

    (4)public int size() 方法 - - - 获取集合长度

    使用:

    public class DemoArrayList {
        public static void main(String[] args) {
            ArrayList<String> list = new ArrayList<>();
            list.add("chris");
            list.add("joe");
            list.add("lin");
            System.out.println(list);
    
            //获取集合的元素
            String name = list.get(2);
            System.out.println(name);
    
            //删除集合的元素
            String r1 = list.remove(1);
            System.out.println(r1);
            int size = list.size();
            System.out.println(size);
    
            //遍历集合
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i));
            }
        }
    }

    如果希望向集合ArrayList里存储基本数据类型,必须使用数据类型对应的 ‘包装类’  - - - 包装类都位于java.Lang包下 所以不需要导包

    包装类对应关系:除 int 对应 integer ; char 对应 character ;其他都是首字母大写

    从jdk1.5开始支持自动装箱 拆箱 所以获取值时不需要用Integer来接收,会自动拆箱

    往集合里添加整形类型:

    ArrayList<Integer> i1 = new ArrayList<>();
            i1.add(100);
            i1.add(134);
            System.out.println(i1);
            int num1 = i1.get(1);

    练习1:创建6个随机数字加入集合,并遍历集合

    ArrayList<Integer> list1 = new ArrayList<>();
            Random ran1 = new Random();
            for (int i2 = 0; i2 < 6; i2++) {
                int num = ran1.nextInt(33) + 1;
                list1.add(num);
                }
                for (int i3 = 0; i3 < list1.size(); i3++) {
                    int listNum = list1.get(i3);
                    System.out.println(listNum);
                }
    随机数字加入集合并遍历

     练习2:创建一个有20个随机值的大集合,通过方法筛选出里面元素全是偶数的集合

    package basicpart.day01;
    
    import java.util.ArrayList;
    import java.util.Random;
    
    public class practise {
        public static void main(String[] args) {
            Random r1 = new Random();
            ArrayList<Integer> array1 = new ArrayList<>();
            for (int i = 0; i < 20; i++) {
                array1.add(r1.nextInt(100));
            }
            System.out.println(array1);
            ArrayList<Integer> resule = checkArray(array1);
            System.out.println(resule);
    
        }
        public static ArrayList<Integer> checkArray(ArrayList<Integer> list){
            ArrayList<Integer> array2 = new ArrayList<>();
            for (int i = 0; i < list.size(); i++) {
                int num = list.get(i);
                if(num % 2 == 0){
                    array2.add(num);
                }
            }
            return array2;
        }
    }
    方法筛选集合
  • 相关阅读:
    Java 条件语句
    Java循环
    Java 变量
    Java 数据类型
    nginx+php发布网站
    安装MySQL5.7
    docker-compose参数
    部署
    dockerfile编写
    在VMware中安装CentOS7
  • 原文地址:https://www.cnblogs.com/caixiaowu/p/12656214.html
Copyright © 2011-2022 走看看