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

来源:互联网 发布:linux查看电源功率 编辑:程序博客网 时间:2024/06/07 02:38

数组的声明和赋值

通过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]+" ");        }    }}

结果如下:
这里写图片描述

数组其他方法

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("工作是为了更好的生活");    }}

输出结果:
这里写图片描述

练习 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("退出程序");    }}