首页 > 编程知识 正文

mars android,mars安卓

时间:2023-05-06 15:47:21 阅读:193659 作者:4753

一 面向对象 首先理解下面向对象的字面意思。 面向就是专门为某一目标服务的意思,比如某公司专门为那些残疾人研制假肢。 面向对象是一种思维方法。 面向对象的思维方法: 一 首先确定谁来做,其次怎么做。 二 首先确定整体,然后是局部。 三 首先考虑抽象,然后考虑具体。
二 类 1.类是什么? 类是一个具有相似内部状态和运动规律的集合。反过来也可以根据内部状态和运动规律的不同来辨别类。两种方法形可以成类:归纳法和演绎法。归纳法就是人们根据某一事物共有的特征归纳成一类,比如用来播放音乐的耳机啊,音箱啊都可以归属影音设备这一大类。类中的耳机根据不同的需要形成不同的特征,比如入耳式耳机,头戴式耳机。这些还可以在分类成不同的个体,比如入耳降噪低音或中高音耳机,这些个体就是对象。 2.类的创建方法: 类的格式: class 类名{ 类的属性=程序里面的变量 类的方法=程序里面的函数, } 类的属性指的是类的内部状态。比如人的身高啊 体重等等。类的方法指的类的行为方式,比如人去吃饭,直立行走等等。 3.类继承 格式 :子类 extends 父类 { } 什么是继承?比如儿子继承老子的一些东西。 除了继承父类之外,子类也可以定义自己的一些成员变量和方法.extends意思是扩展,子类继承了父类之后,可以在原有的基础上进行扩展。 4.抽象类 三个原则: 1.抽象类不能生成对象。2.有抽象函数的类必须要抽象化。3.没有抽象函数的类也可以抽象化。 它的作用:当爸爸,只能被子类继承,但是继承之后呢?这个子类依然不能生成对象,所以要用到函数的复写(override),使用之后,这个类之前也就不用使用abstract. 抽象类跟构造函数的关系:同样构造函数也可以复写。所以依然可以使用抽象函数生成对象。 为什么要使用抽象类? 首先它是一个抽象的,不是具体的概念。例如打印机,可以分为针打印机和喷墨打印机两种,我们可以定义一个名为打印机的类,这个类包含针打印机和喷墨打印机相同的基本操作,但是他们的打印方式不同,所以他们的输出函数也就不同,所以这时就要使用抽象类了。使用抽象的好处之一,可以防止程序员遗忘代码,或者写错代码。 这里有一句话,特别值得思考,如果一段代码在语义上有错误,那么在语法上应该也有错误 1.如何使用super(); 1.由于子类无法直接继承父类的构造函数,但是子类的构造函数可能会产生与父类重复的代码,所以在子类的构造函数中必须添加父类的构造函数,怎么解决呢? 使用super();这个函数跟this();( 至于调用那个函数,由函数的形参所决定 )类似,区别在于前者是调用父类的构造函数,后者是调用当前所在类的构造函数。 2.复写(override)也称覆盖或重写,有两个辨别的原则: 1.具备父子类关系。 2.在父类和子类的函数中,函数的返回值类型,函数名以及参数列表相同。 为什么要用复写呢? 当对父类的方法不满意要修改时,就可以使用。也就是在父类方法的基础上,添加修改。 3.super的第二种用法 在父类方法的基础上进行扩展,也就不可避免的重复了,所以使用super. 格式:super.要复写的父类函数名(); 函数分为构建函数和普通函数。 构建函数是什么? 用来创建对象的函数,如果在类创建中没有手动创建,计算机会自动创建。 函数的格式: 类名(形参,可有可没){ } 这个类名必须与CLASS后面的相同。与普通函数的区别是没有返回值。在什么情况下要使用它?重不重要,应不应该找点练习题来做,加深一下理解? 函数有一个重要的语法点是函数可以重载,可以根据三个原则来区别:1.多个同名函数存在同一个类中。2.同名。3.形参不同。 调用构造函数的方法: A d=new A(); 可以用来消除重复性代码。 三 对象 1.什么是对象? 百度百科上面的定义是行动或思考时当作目标的事物或恋爱双方。换句话说对象就是所要研究的任何事物。从程序员角度来看,对象就是一个模块,( 程序员的工作是不是要设计一个这样的模块出来? ),从用户来看,这个模块是否实现了我所要的功能。对象的内部状态称为属性,比如游戏中某件装备中的武力啊,耐力啊,就称为属性。 什么是行动? 为达到某种目的而进行的活动,比如我要为自己做一道红烧鱼,可以分为以下步骤:1.对鱼撒盐以保证鱼肉不过于清淡。2.热锅热油。3.放鱼,时不时翻两下以免烧焦。4.加点水,然后焖个七八分钟。5.摆盘。那么在这一系列步骤中,作为目标的事物就是红烧鱼,也就是对象。这些事物可以是具体的或者抽象的,比如一本书,某个人,某道菜,某条交通规则。 2.对象的创建方法: 类名 对象名= new 类名(); 对象名可以任意取 。 new的作用:就是在堆内存里面开辟一片空间存放对象的wwdfn。 它的过程: 类名 对象名 = new 类名(); 首先在栈内存里面创建引用(对象名) 类名 对象名 = new 类名(); 其次在堆内存里面开辟一片空间存放对象的wwdfn。 类名 对象名 = new 类名(); 最后把wwdfn赋值给引用。 3.调用对象的方法: 对象名(引用).变量; 这个也可以表示为 类名().变量; 这种用法叫做匿名。 对象名(引用).函数; 对象名可以有多个,比如狗类中的哈士奇,世界上有很多只,但每一只都不一样。 有一种特殊情况,就是在创建匿名对象的过程中, 类名 对象名 = new 类名(); 如果有两个同样,其中的new是完全不同的,因为这个对象是匿名的,想要找到是不可能的。 所以创建的是不同的对象。 4.关键字this: 它的作用:它属于调用这个函数的对象。相当于现实中的代词“我”,比如感性的雪碧说“我”和自觉的外套说“我”,这个“我”,它所代表的是不同的个体。另外它可以用来区别类中成员变量和函数的形参。 格式:this.变量名; this(形参);作用是调用本类中另外一个函数。 person(string name,int age,string address){ } 相当于 person(string s1,int a,string s2){ name=s1;age=2;address=s2; } 5.向上转型 什么是向上转型? 子类的对象赋值给父类的引用。比如一条哈士奇,它属于哺乳动物,是狗的父类,狗又是哺乳动物中的一类,而哈士奇是狗其中的一只,也就是狗的对象,所以我们可以称哈士奇是一只狗。 它的格式: 子类名 对象名=new 子类名(); 父类名 引用名=对象名; 语法规则:1.能够调用的成员变量,取决于这个引用的类型,有就可以调,没有则就显示找不到。 2.一个引用能够调用的方法(函数),取决于这个引用的对象。也就是这个类的儿子。 6.对象的向下转型 什么是向下转型?将父类的对象赋值给子类的引用。 先向上转型然后再把赋值. 例如:student s=new student(); person p=s; student s1=p; 前提是必须先向上转型。 抽象函数 定义:只有函数定义,没有函数体。 格式:abstract void eat(); 。 四 变量 1.变量static 静态变量的语法特点:加在声音变量和函数的前面。 它的作用:在把类装载进内存的时候,初始化一些变量。 它与普通成员变量的区别:一。调用方法不同 ,它是使用类名.变量进行调用的。 二。创建对象的方式相同,但赋值方法不同,一般创建对象,每个区域都有属于自己的值,但静态定义的对象所在区共用一个值。比如:前者使用的演绎法从一般到特殊,后者用的是归纳法从特殊到一般。 如果给静态的成员变量其中一个赋值,那么另外一个也会变。 另外在静态函数中不能使用this关键字。也就是不能在静态函数中使用非静态变量。 静态代码块 static{ } 作用是初始化变量。 五 软件包 1.什么是软件包? 软件包其实就是一个存放类文件的文件夹。用来避免相同类名的程序造成不必要的混乱,就是允许使用相同类名,但是放在不同的空间。 创建一个软件包,需要使用语句: package 包名; 包名的命名规则: 1.一般都使用小写。 2.有域名要倒过来写。例如 marsdroid.org作用包名时,要倒过来,而且还有一点不同,就是里面的这个点“.”,会产生一个子目录。 编译要使用命令:java -d 文件所要存放的目录名 类名.java 使用这个包的命令:java 包名.类名 2.访问权限 分为四种: 1.公共权限 public (1)公共权限对类的作用:首先两个类A和B得在不同的包里面,如果A要调用B来创建对象,则需要对B进行声明。声明格式:public class 类名{ } PS:这个类名必须跟原文件的名字一样。 在任何包中都可以用。 调用格式:包名.类名 对象名=new 包名.类名();但是用这个名字太长了,创建多个对象的时候会很麻烦,所以用到一个偷懒的办法: import 包名; 意思是将相同或不同包里面的类导入当前的类当中。如果在包名后面+.* 则导入这个包目录下所有的类。 (2)公共权限对类属性和方法的作用:声明格式:public 变量类型 变量名; 调用则和普通用法相同。 2.private 私有权限 作用:不用对类名进行声明,只对类的属性和方法声明,声明之后,只能在本类中进行使用。 3.default 包级别访问权限 作用:在相同的包里面,不同的类可以相互调用。如果在不同的包里面则不可以。不用声明,系统已经默认。 4.protected 受保护权限 首先它和default有一样的功能,但是只声明成员变量和成员函数。它和公共权限的区别在于它所声明的成员变量和成员函数,只有它的子类能够调用,而公共权限所声明的不管在哪都可以调用。另外在不同的包里面使用这个权限的时候,这个类要被声明为公共权限。 有一个基本原则:一个类的成员变量和函数的访问权限应该尽可能的小. 3.软件包访问权限跟类继承的关系 如果子类跟父类不在同一个包中,那么子类无法使用父类的default类型的成员变量和函数,原因是访问的权限不够。如果要使用需要声明为公共权限。 六 接口(JAVA的核心) 什么是接口? 定义接口就是定义了调用对象的标准。 接口的语法规则: 1.定义一个接口要使用 interface 关键字。 2.接口里面的方法都是抽象方法。要使用标准必须先继承,然后复写。 3.接口里面的方法都是公共权限。 一个类继承一个接口要用 implements 关键字 一个类还可以继承多个接口,例如手机就是一个比较大的类,它跟电脑互联的标准有很多少个,比如USB WIFI 蓝牙。 接口还可以继承另一个接口,使用extends关键字继承,比如一个电脑的USB接口,它可以继承WIFI的一些特性,比如上网。 七 异常 1.什么是异常? 异常就是一个阻止程序正常运行的错误或情况。比如我正全神贯注的学习,外面有人来敲门,我不得不去开门。异常就是一个从异常类创建的对象。 2.异常的分类 异常分为致命(Error)的和非致命的(Exception)以及运行时异常(RuntimeException)它是非致命的子类。 非致命异常属于免检异常(unchecked exception) 致命异常属于必检异常(checked exception),指的是编译器会强制程序员检查它们。 它们的区别是什么? 非致命就是程序或外部环境所造成的一些能够处理和捕捉的异常,例如人被子弹打到腿,这是可以处理的。 致命就是内部系统错误,这种情况很少发生,一旦发生,什么都干不了,只能稳妥的退出。例如人得了绝症,治疗不了,只能尽量地减少痛苦。 3.异常如何去创建,捕捉,抛出以及处理的? 异常的创建:try{ } 这个块里面包含的是一个正常运行但有可能出错的程序。如果出现错误,就使用 throw new 异常类(); 这个关键字来抛出,同时调用catch(异常类 对象名){ }来处理异常。 throw这个调用非常类似于调用方法,不过它调用的是catch这个块,而且返回之后不在throw,而是在catch。 catch(异常类型 参数)指定了要处理的异常类型。 4.为什么要使用异常? 因为异常可以检查出错误,并分离出这个错误。它使程序在运行时出现错误不会不之所措,而是提供了一个解决错误的方法。比如一个新手在遇到困难不知道怎么办的时候,在他身边来了一个老手,提供了解决困难的思路一般。 5.异常的处理扩展 异常的处理基于三个操作:声明异常,抛出异常,捕捉异常。使用关键字throws+要抛出的异常类型1,异常类型2{}这个块来声明异常(如果父类没有声明,那么在子类就不能覆盖进行声明),然后使用throw new 异常类(); 进行抛出,最后使用catch(异常类 对象名)来捕捉。 6.try-catch的用法 如果当前的方法中没有该类异常的处理器,程序会自动返回到调用该方法的方法中,继续寻找,如果没有,就退出程序。 如果一个catch块能够捕捉父类的对象,那么就能够捕捉这个父类的子类的所有异常对象。 catch块的排序也有讲究,应该按照从大到小,一类一类的排。 八 I/O流 什么是I/O流? 类似于一根从水库抽水/进水的水管,抽水是由抽水机进行的。 i应该就是输入,O就是输出。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。