首页 > 其他分享 >面向对象

面向对象

时间:2024-01-18 22:00:45浏览次数:22  
标签:name int array2 System 面向对象 println out

稀疏数组

package com.zzl.arry;

public class Demo8 {
    public static void main(String[] args) {
        //1.创建一个二维数组11*11 0:没有棋子  1:黑棋 2:白棋
        int[][] array1 = new int[11][11];
        array1[1][2] = 1;
        array1[2][3] = 2;
        System.out.println("输出原始数组:");
        for (int[] ints : array1) {
            for (int anInt : ints) {
                System.out.print(anInt+"\t");
            }
            System.out.println();
            System.out.println("==========================");
        }
        //转换为稀疏矩阵
        //获取有效值的个数
        int sum = 0;
        for (int i = 0; i < 11; i++) {
            for (int j = 0; j < 11; j++) {
                if (array1[i][j]!=0){
                    sum++;
                }
            }
        }
        System.out.println(sum);
        //创建一个稀疏数组
        int[][] array2 = new int[sum+1][3];
        array2[0][0] = 11;
        array2[0][1] = 11;
        array2[0][2] = sum;
        //遍历二维数组,将非零的值,存放在稀疏数组中
        int count = 0;
        for (int i = 0; i < array1.length; i++) {
            for (int j = 0; j < array1[i].length; j++) {
                if (array1[i][j]!=0){
                    count++;
                    array2[count][0] = i;
                    array2[count][1] = j;
                    array2[count][2] = array1[i][j];

                }

            }

        }
        //输出稀疏数组
        System.out.println("输出稀疏数组");
        for (int i = 0; i < array2.length; i++) {
            System.out.println(array2[i][0]+"\t"
                    +array2[i][1]+"\t"
                    +array2[i][2]+"\t");
        }
        System.out.println("========================");
        System.out.println("还原");
        //1.读取稀疏数组
        int[][] array3 = new int[array2[0][0]][array2[0][1]];
        //2.给其中的元素还原它的值
        for (int i = 1; i < array2.length; i++) { //注意o行不能取
            array3[array2[i][0]][array2[i][1]] = array2[i][2];

        }
        //打印原数组
        for (int[] ints : array3) {
            for (int anInt : ints) {
                System.out.print(anInt+"\t");
            }
            System.out.println();
        }

    }
}

面向对象

以类的方式组织代码,以对象的组织(封装)数据

image-20240118112953222

类和对象的构造

package com.zzl.oop2.Demo1;
//学生类
public class Student {
    //属性:字段
    String name;
    int age;
    public void study(){
        System.out.println(this.name+"在学习");
    }

}
/*
        //类是抽象的,实列化
        //类实例化后会返回一个自己的对象;
        //student对象就是一个Student类的具体实例!
   Student xiaoming = new Student();
        Student xiaohong = new Student();
        xiaoming.name = "小明";
        xiaoming.age = 3;
        System.out.println(xiaoming.name);
        System.out.println(xiaoming.age);
        xiaohong.name = "小红";
        xiaohong.age = 3;
        System.out.println(xiaohong.name);
        System.out.println(xiaohong.age);
 */

构造器

package com.zzl.oop2.Demo1;

public class Person {
//一个类即使什么都不写,也会产生一个构造方法
    //1.必须和类的名字相同,也不能写void
    //显示的定义构造器
    String name;
    //实例化初始值
    //1.使用new关键字,必须要有构造器,本质是在调用构造器
    public Person(){

    }
    //有参构造,一旦定义了有参构造,无参构造必须显示定义
    //y用来初始化值
    //alt+insert 自动生成构造器
    public Person(String name){
        this.name = name;
    }

}
    //类是抽象的,实列化
    //类实例化后会返回一个自己的对象;

   /* Person person = new Person("zzl");
        System.out.println(person.name);
        构造器
        1.和类名相同
        2.没有返回值
        作用:
        1.new的本质在调用构造方法
        2.初始化对象的值
        注意点:
        1.定义有参构造之后,如果想使用无参构造,显示的定义一个无参构造



        */

创建对象内存分析

image-20240118175056290

面向对象总结

  1. 类与对象

    类是一个模板是抽象的,对象是一个具体的实例

  2. 方法

    定义,调用

  3. 对应的引用

    引用类型: 基本类型(8);

    对象是通过引用来操作的:栈---》堆

  4. 属性:字段Field 成员变量

    默认初始化

    数字:0 0.0

    char :u0000

    boolea: false

    引用: null

    修饰符 属性类型 属性名 = 属性值;

  5. 类:

    静态的属性 属性

    动态的行为 方法

  6. 对象的创建和使用

    -必须使用new 关键字创造对象,构造器 Person zzl =new Person();

    -对象的属性 zzl,name

    -对象的方法 zzl.sleep()

标签:name,int,array2,System,面向对象,println,out
From: https://www.cnblogs.com/zzl990110/p/17973517

相关文章

  • 练习1:面向对象
    使用面向对象的思想,编写自定义描述狗的信息。设定属性包括:品种,年龄,心情,名字;方法包括:叫,跑。要求:设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问限定心情只能有“心情好”和“心情不好”两种情况,如果无效输入进行提示,默认设置“心情好”。设置构造......
  • 练习2:面向对象
    以面向对象的思想,编写自定义类描述ITpractitioner。设定属性包括:姓名,年龄,技术方向,工作年限,工作单位和职务;方法包括:工作要求:1)设置属性的私有访问权限,通过公有的get,set方法实现对属性的访问2)限定IT从业人员必须年满15岁,无效信息需提示,并设置默认年龄为15。3)......
  • 练习3:面向对象
    #请使用面向对象的思想,设计自定义类,描述出租车和家用轿车的信息。设定1)出租车类:属性包括:车型,车牌,所属出租公司;方法包括:启动,停止2)家用轿车类:属性包括:车型,车牌,车主姓名;方法包括:启动,停止要求1)分析出租车和家用轿车的公共成员,提取出父类—汽车类2)利用继承机制,实现出......
  • 面向对象
    面向对象面向对象概述###面向对象是基于过程来的事想,在程序中创建实例化对象,指挥对象做事情(指挥官)1.面向对象开发1.1语法格式classPeople:defsend_emmail(self,name)print(f'发送邮件给{name}')p1=People()p1.send_email('马云')2.类中的函数定义在p......
  • Python面向对象之元类
    元类【一】概要元类是类的类,它用于定义其他类。在Python中,一切皆对象,包括类。而元类就是用来创建这些类的“类”。类是对象:在Python中,类本身也是一个对象,而元类就是用来创建这些类的对象。【二】常见用法type函数:在Python中,type函数不仅可以返回对象的类型,还可以用于创建......
  • Python 面向对象的私有属性获取
    前言全局说明一、安装flask模块二、引用模块三、启动服务模块安装、引用模块、启动Web服务方法,参考下面链接文章:https://www.cnblogs.com/wutou/p/17963563四、面向对象的私有属性获取4.1.2classFoo:def__init__(self):self.name='wangwu'......
  • 开发日记3(java面向对象)
    (一)java面向对象1、面向过程和面向对象很久很久以前,系统学习过C语言,但也只是学过,没有产生过除了考试以外的其他价值。后来工作中很多伙伴都在使用java,虽然当时自己不写java,但很久之前就有个概念,这两种语言还是不同的,一个面向过程、一个面向对象。面向过程比较容易理解,基实过程可以理......
  • Java面向对象
    Java面向对象面向对象编程(Object-OrientedProgramming,OOP)面向对象编程本质:以类的方式组织代码,以对象的组织(封装)数据三大特性:1、封装所谓的封装就是把类的属性和方法使用private修饰,不允许类的调用者直接访问,如果想要操作这些属性使用public的get、set方法。封装的作用:不......
  • Python面向对象之内置方法
    内置方法【一】常用方法特殊属性__name__:类的名称。__module__:类定义所在模块的名称。__dict__:包含类命名空间的字典。__bases__:包含基类的元组,按它们在基类列表中的出现先后排序。__doc__:类的文档字符串,如果未定义则为None。特殊方法(魔法方法):满足一定......
  • springboot第48集:【思维导图】地图,面向对象,异常,功能代码
    在SpringBoot中,可以通过编写拦截器(Interceptor)来对请求进行拦截与处理。下面是一个简单的拦截器实现示例:创建一个类并实现HandlerInterceptor接口publicclassAuthInterceptorimplementsHandlerInterceptor{@OverridepublicbooleanpreHandle(HttpServletRequest......