欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java入门基础之数组以及类与对象 个人笔记

程序员文章站 2024-03-15 17:41:36
...

数组的声明和赋值

通过new关键字来声明你想定义的数据类型的数组;
边声明边赋值不能指定数组长度,数组长度已固定

package day3;

public class Demo01 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[]= new int[]{12,11,14};//边声明边赋值不能指定数组长度,数组长度已固定
        int sum = 0;
        for(int i = 0;i<a.length;i++){
            sum+=a[i];
        }
        System.out.println((double)sum/a.length);

        String s[]= new String[]{"Nike" , "Suning" ,"Kappa","361°"};
        for(int i =0;i<s.length;i++){
            System.out.println(s[i]);
        }
    }

}

传值和传引用

package day3;

public class Demo04 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //基本数据类型传值
        int i=6;
        int j = i;
        i = 7;
        System.out.println(j);

        //引用数据类型
        int zhangSan [] = {180,25};
        int liSi[] = zhangSan;
        zhangSan[0] = 170;
        System.out.println(liSi[0]);
    }

}

数组的升序排序

Array.sort();函数

package day3;

import java.util.Arrays;

public class Demo05 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[] = {15,45,87,11,21};
        System.out.println("排序前:");
        for (int i = 0; i < a.length; i++) {

            System.out.print(a[i]+" ");
        }
        System.out.println();
        Arrays.sort(a);//升序排列
        System.out.println("排序后:");
        for (int i = 0; i < a.length; i++) {

            System.out.print(a[i]+" ");
        }
    }

}

结果如下:
Java入门基础之数组以及类与对象 个人笔记

数组其他方法

package day3;

import java.util.Arrays;

public class Demo06 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int arr1[] = {10,20,30,40};
        int arr2[] = {10,20,30,40};
        int arr3[] = {10,20,30};
        //equals:用来判断数组是否相同,输出true和false
        System.out.println(Arrays.equals(arr1, arr3));
        //toString:用来把数组转化成字符串
        System.out.println(Arrays.toString(arr1));
        //fill:用来给数组填元素
        Arrays.fill(arr1, 10);
        System.out.println(Arrays.toString(arr1));

        //binarySearch:用来查找数组中指定数据的索引
        Arrays.sort(arr2);
        System.out.println(Arrays.binarySearch(arr2, 20));//只对升序数组有效,先便历数组,在输出索引值

        //copyOf:从数组的头部开始,复制指定长度的数组
        //参数一:要复制的数组  参数二  :复制元素的个数
        int arr4[] = Arrays.copyOf(arr2, 6);
        System.out.println(Arrays.toString(arr4));
        //copyOfRange复制数组中的某一段元素
        //参数一:要复制的数组  参数二  :开始的索引   参数三: 结束索引(不包括)
        int arr5[] = Arrays.copyOfRange(arr2, 0, 2);
        System.out.println(Arrays.toString(arr5));
    }

}

类与对象

对象:真实存在的实体 张三 李四
对象:有自己的属性和方法
属性:对象具有的特征(高矮胖瘦等等)
方法:对象能做什么(吃喝睡打篮球跑步)
对象是具体的,真实存在的

类:是对对象的概括 张三李四王五等都属于人
具体相同属性和方法的对象可以归为一类
类是抽象的概念,不是具体的

对象的实例化 由抽象的类生成一个具体的实例
对象就拥有了类的相关的属性和方法

构造函数

package day3;

public class Demo091 {
    //构造函数:和类同名,没有返回值
    //作用:用来实例化对象,实例化对象的时候会调用构造函数
    //特点:一个类里可以存在多个构造函数

    public  Demo091(){
        System.out.println("实例化调用了我");
    }
    public  Demo091(String name1 ,int age1){
        this.name = name1;
        this.age = age1;
    }
    //属性
    String name;
    int age;
    //方法 无参函数
    public void eat(){
        System.out.println("我喜欢吃蛋炒饭");
    }
    //有参函数
    public void say(){
        System.out.println("我的名字"+name);
        System.out.println("我的年龄"+age);
    }
}

练习1

文件一:

package day3;

public class Demo101 {
    String name;
    int age;
    String sex;
    double height;
    double weight;
    public Demo101(String name1,int age1,String sex1){
        this.name = name1;
        this.age = age1;
        this.sex = sex1;
    }
    public void jieshao(){
        System.out.println("大家好!");
        System.out.println("我叫"+name+",今年"+age+"岁");
        System.out.println("我是一个身高"+height+",体重"+weight+"的"+sex+"人");
    }
    public void work(String content){
        System.out.println(name+"的工作理念是:"+content);
    }
}

文件二:

package day3;

public class Demo102 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Demo101 abao = new Demo101("阿宝",25,"男");
//      abao.name = "阿宝";
//      abao.age = 25;
//      abao.sex = "男";
        abao.height = 175.0;
        abao.weight = 120.0;
        abao.jieshao();
        System.out.println("=============================");
        Demo101 meimei = new Demo101("美美",21,"女");
//      meimei.name = "美美";
//      meimei.age = 21;
//      meimei.sex = "女";
        meimei.height = 165.0;
        meimei.weight = 100.0;
        meimei.jieshao();
        meimei.work("工作是为了更好的生活");
    }

}

输出结果:
Java入门基础之数组以及类与对象 个人笔记

练习 2

要求说明:当输入为n时,停止输入数据,否则,一直输入。
通过do{}while的循环来实现
文件一:

package day3;

public class Person1 {
    String name;
    int age;
    public double sum(double a,double b){
        return a+b;
    }
    public void visit(){
        if(age>=18)
        System.out.println(name+"的年龄"+age+",门票价格为:20元");
        else
        System.out.println(name+"的年龄"+age+",门票免费");
    }
}

文件二:

package day3;

import java.util.Scanner;

public class Person2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Person1 zhangsan = new Person1();
        int i=1;
        Scanner input = new Scanner(System.in);
        double a = input.nextDouble();
        double b = input.nextDouble();
        double sum = zhangsan.sum(a, b);
        System.out.println(sum);
        do{
            System.out.print("请输入姓名:");
            zhangsan.name = input.next();
            if(zhangsan.name.equals("n")){
                break;
            }   
            else{
                i=1;
            System.out.print("请输入年龄:");
            zhangsan.age = input.nextInt();
            zhangsan.visit();
            System.out.println();
            }

        }while(i==1);

        System.out.println("退出程序");

    }

}