Java学习日记------面向对象③

Java类的设计和使用练习

package day3;

public class TestPerson1 {
    public static void main(String[] args) {
        Person1 a1=new Person1();
        a1.study();
        a1.showage();
        a1.addAge(2);
        a1.Display();
    }
}
class Person1{
    String name;
    int age;
    boolean sex;
    public void study() {
        System.out.println("studying");
    }
    public void showage() {
        System.out.println("age:"+age);
    }
    public int addAge(int i) {
        age+=i;//age=age+i;
        return age;
    }
    public void Display() {
        System.out.println(" name:"+name+" age:"+age+" sex:"+sex);
    }
}
package day3;
//利用面向对象的方法设计Circle类计算圆的面积。
public class Circle {
    public static void main(String[] args) {
        circl aa=new circl();
        aa.radius=2.3;
        aa.findArea();
    }
}
class circl{
    double radius=1.0;//半径
    //计算圆的面积
    public void findArea() {
        System.out.println(3.14*radius*radius);
    }
}
package day3;

public class TestArry {
    public static void main(String[] args) {
        int[] arr=new int[] {1,2,3,4,5,6,7};
        ArryUtil au=new ArryUtil();
        int max=au.getmax(arr);
        System.out.println("最大值为:"+max);
        int avg=au.Avg(arr);
        System.out.println("平均值为:"+avg);
        au.printArray(arr);
        au.sort(arr,"desc");
        au.printArray(arr);
    }
}
//、、、、、、、、、、、、、、、、、、、、、、、、
package day3;

public class ArryUtil {
    //求数组的最大值
    public int     getmax(int[] arr) {
        int max=arr[0];
        for(int i=1;i<arr.length;i++) {
            if(max<arr[i]) {
                max=arr[i];
            }
        }
        return max;
    }
            //求数组的最小值
    public int Getmin(int[] arr) {
        int min=arr[0];
        for(int i=1;i<arr.length;i++) {
            if(min>arr[i]) {
                min=arr[i];
            }
        }
        return min;
    }
            //遍历数组的元素
    public void printArray(int[] arr) {
        System.out.print("[");
        for(int i=0;i<arr.length;i++) {
            System.out.print(arr[i]+"\t");
        }
        System.out.println("]");
    }
            //求数组的平均值
    public int Avg(int[] arr) {
        int sum=getSum(arr);
        return sum/arr.length;
    }
            //求数组的总和
    public int getSum(int[] arr) {
        int sum=0;
        for(int i=0;i<arr.length;i++) {
            sum+=arr[i];
        }
        return sum;
    }
            //数组的反转
    public int[] reverse(int[] arr) {
        for(int x=0,y=arr.length-1;x<y;x++,y--) {
            int temp=arr[x];
            arr[x]=arr[y];
            arr[y]=temp;
        }
        return arr;
    }
            //实现数组的复制
    public int[] copy(int[] arr) {
        //int[] arr1=arr;
        //return arr1;   这种情况实际上是arr和arr1使用了同一个堆空间里的数组
        int[] arr1=new int[arr.length];
        for(int i=0;i<arr1.length;i++) {
            arr1[i]=arr[i];
        }
        return arr1;
    }
            //对数组进行排序
    public void sort(int[] arr,String desc) {
        if(desc=="des") {//从小到大
            //冒泡排序
            for(int i=0;i<arr.length-1;i++) {
                for(int j=0;j<arr.length-1-i;j++) {
                    if(arr[j]>arr[j+1]) {
                        int temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                    }
                }
            }
        }else if(desc=="desc") {
            //冒泡排序  从大到小
            for(int i=0;i<arr.length-1;i++) {
                for(int j=0;j<arr.length-1-i;j++) {
                    if(arr[j]<arr[j+1]) {
                        int temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                    }
                }
            }
        }
    }
}

  Java类的方法重载:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。

  重载的特点:与返回值类型无关,只看参数列表,且参数列表必须不同。(参数个数或参数类型)。调用时,根据方法参数列表的不同来区别。

  重载示例:

//返回两个整数的和
  int add(int x,int y){return x+y;}
//返回三个整数的和
  int add(int x,int y,int z){return x+y+z;}
//返回两个小数的和
  double add(double x,double y){return x+y;}

p

原文地址:https://www.cnblogs.com/Gaohy/p/8496584.html

时间: 2024-10-27 08:36:02

Java学习日记------面向对象③的相关文章

Java学习日记------面向对象①

1 package com.atguigu.java; 2 /* 3 理解1:人开门 4 面向过程:人 打开 门 5 面向对象: 6 人{ 7 打开(门){ 8 门.开开(): 9 } 10 } 11 12 门{ 13 开开(){ 14 } 15 } 16 */ 17 /*理解二:人把大象装冰箱 18 *面向过程:1)打开冰箱2)把大象装进去3)关闭冰箱门 19 *面向对象: 20 *人{ 21 * 打开(冰箱){冰箱.开开} 22 * 操作(大象){大象.进入(冰箱)} 23 * 关闭(冰箱)

Java学习日记------面向对象②

2018-03-01 1.创建Java类并实例化 package day02; /* * 面向对象思想的落地法则一: * 1.设计类,并设计类的成员(成员变量和·成员方法) * 2.通过类,来创造类的对象(也成为类的实例化) * 3.通过"对象.属性"或"对象.方法"来调用. */ public class zoo { public static void main(String[] args) { //基本数据类型的声明:数据类型 变量名=初始化值 //int i

Java学习日记------面向对象④

一.体会可变个数的形参 1.格式:对于方法的形参 数据类型 ...形参名 2.可变形参的方法与同名的方法构成重载 3.可变个数的形参在调用时个数从0开始到无穷多个都可以. 4.使用可变个数的形参与方法的形参使用使用数组是一致的. 5.若一个方法中有可变个数的形参,那么一定要声明在方法形参的最后. package day04; public class TestArgs { public static void main(String[] args) { TestArgs c=new TestAr

Java学习日记(一)基础

标识符: 由26个英文字母大小写,数字:0-9 符号:_ $ 组成 定义合法标识符规则: 1.数字不可以开头. 2.不可以使用关键字. 3.Java中严格区分大小写. Java中的注释格式: 单行注释: 格式: //注释文字 多行注释: 格式: /* 注释文字*/ 文档注释: 格式:/** 注释文字 */ 常量: 常量表示不能改变的数值. java中常量的分类: 1.整数常量.所有整数 2.小数常量.所有小数 3.布尔型常量.较为特有,只有两个数值.true 和false. 4.字符常量.将一个

java学习日记第一天

java 学习日记 第一天 java学习准备工作 首先环境配置:一个是jdk安装,另一个编译工具 eclipse ,安装下载教程网上很多 找了一个照着做就行 : 上述步骤完成,我们就可以打开eclipse进行我们第一个程序的编写啦当然是编写我们熟悉的helloWorld创建一个Java Perfect 目前好像基本都习惯用工程管理我们就建一个java工程然后点开工程在src右键new一个class,不用问这是啥这是啥,先把程序跑起来,慢慢就懂了我们在{}写我们的程序,这就好比helloworld

Java学习日记 week3 面向对象2:封装,继承,多态

一 .包(package) 1.package: 为什么需要package? 为了解决类之间的重名问题. 为了便于管理类:合适的类位于合适的包! package怎么用? 通常是类的第一句非注释性语句. 包名:域名倒着写即可,再加上模块名,并与内部管理类. 其实内部实现就是靠目录结构来做到的. com.sun.test com.oracle.test(com.oracle.test.test1)是两个不同的包: 2.JDK中的主要包: java.lang-包含一些Java语言的核心类,如Strin

2019-05-17 Java学习日记之面向对象_多态&amp;抽象类&amp;接口

多态 多态的概述: A:多态(polymorphic) 事物存在的多种形态 B:多态前提 a:要有继承关系 b:要有方法重写c:要有父类引用指向子类对象 多态中的成员访问特点之成员变量: 成员变量:编译看左边(父类),运行看左边(父类)多态中的成员访问特点之成员方法:成员方法:编译看左边(父类),运行看右边(子类)多态中的成员访问特点之静态成员方法:静态方法:编译看左边(父类),运行看左边(父类)(静态和类相关,算不上重写,所以访问还是左边的)只有非静态的成员方法,编译看左边,运行看右边 多态的

2019-05-15 Java学习日记之面向对象_构造方法&amp;静态static

构造方法 构造方法constructor概述和格式: A:构造方法概述和作用 给对象的数据(属性)进行初始化 B:构造方法的格式特点 a:方法名与类名相同(大小也要与类名一致) b:没有返回值类型,连void都没有 c:没有具体的返回值return 注意事项: 1.构造方法不能用对象调用 2.构造方法也是有return语句的,格式是return 构造方法的重载和注意事项: 注意事项: a:如果我们没有给出构造方法,系统将自动提供一个无参构造方法 b:如果我们给出了构造方法,系统将不再提供默认的无

Java学习之面向对象一

1 面向对象 1.1     理解什么是面向过程.面向对象 面向过程与面向对象都是我们编程中,编写程序的一种思维方式. l  面向过程的程序设计方式,是遇到一件事时,思考"我该怎么做",然后一步步实现的过程. 例如:公司打扫卫生(擦玻璃.扫地.拖地.倒垃圾等),按照面向过程的程序设计方式会思考"打扫卫生我该怎么做,然后一件件的完成",最后把公司卫生打扫干净了. l  面向对象的程序设计方式,是遇到一件事时,思考"我该让谁来做",然后那个"