发表于: 2018-03-02 23:14:00
2 619
今天完成的事情:
一.继续基础知识学习
1.关于方法:
a.方法是为了完成某个功能而编写的一段代码,如果以后想使用这个功能只需直接调用这个方法即可。
b.方法的优点:使代码更简洁;实现代码复用;方便程序维护
c.方法定义格式:[修饰符] 返回值类型 方法名(参数类型1 参数名1,参数类型2 参数名2,...){方法体}
d.方法返回值类型是指调用方法时返回的值的类型,若有返回值,则必须与方法运行后return后的返回值类型一致,若无,则用void,即void和return二者用其一。
e.方法名是程序员起的,一般是形容方法作用的动词,遵循起名规则。
f.方法在完成某个功能时,可能需要一些数据,这些数据就是通过定义方法时指定的方法的参数来传递给方法的,在定义时需指定参数类型和参数名,多个参数间用","分隔,也可以没有参数,但是"()"不可以省略。
g.一个类中多个方法间可以互相调用,调用方法时转到方法内部去运行,运行完毕转到调用的位置继续原程序的运行。
h.方法定义的位置在类中,其他方法的外面,方法之间是并列的,不能在主方法外的一个方法内部再定义一个方法。
i.方法按照参数分为有参数和无参数类型,在定义了一个方法后,方法不会自动运行,需要通过方法的调用来使用方法,无参类型直接使用方法名调用方法,有参类型通过方法名(参数)调用方法,若有多个参数,传递的数据要与定义时指定的参数个数一致,且类型也要一致。
j.方法按照返回值分为有返回值和无返回值类型,无返回值时,返回值类型用Void表示,方法调用语句作为单独一条语句存在;有返回值,必须通过return返回,且必须保证能返回至少一个值,返回后需对返回值进行处理,包括打印,保存到一个变量中或作为其他表达式的一部分。
k.方法的形参和实参时相互独立的,调用方法时,把实参的值传递给形参,调用结束,形参就会被释放内存。所以带返回值的方法其调用语句不能只有方法名,否则方法调用结束,形参变量被释放,就等于没有使用这个方法。
l.方法的重载
m.方法的递归调用:在方法体中用调用了它本身,定义方法时需要确定两点:找到规律和确定结束条件
2.关于类和对象:
a.对象:现实世界中客观存在的事物;万事万物皆对象。
类:把一组对象相同的属性和相同的行为抽象出来就形成了类(例如人的身高,体重,性别,吃喝拉撒的行为就是人类所共有的,但是具体到每个对象,其属性和行为又会不一样);类是对一组对象相同属性和相同行为的描述。
类和对象的关系:对象是具体的,类是抽象的;类是对象的模板,对象是类的实例。
b.在java中先创建类再创建对象:
类的创建: [修饰符] class 类名{属性即变量,行为即方法}
对象的创建: 类名 对象名=new 类名(); 如Scanner sc=new Scanner(System.in);
类创建了对象之后,对象就可以同成员变量符"."来访问类的属性和方法。
c.一个类可以创建多个对象,每个对象都有自己专属的属性和行为。
d.在成员方法中可以直接使用成员变量,定义一个成员方法时可以调用其他成员方法;不同包中类名可以相同,同一个包中则不能定义同名的类
e.通过类定义了对象,如果不给对象的各个变量赋值,对象的各个成员变量会进行默认的初始化,数值型——0,字符型——码值为0的字符,布尔型——false,引用类型——null,而在定义类时,可以给成员变量赋初始值,在类创建了对象后,如果没有给对象的这个成员变量赋值,则这个成员变量的值就时定义类时赋的初始值。
f.在一个类中,可以使用自定义类型,即不使用系统定义的类型如int,string等。
g.类的三个属性:
封装性:是指以类为载体,将对象的属性和行为封装起来,以保证类内部数据结构的完整性,在使用该类时只需利用特定接口即可而不需要知道具体内部流程和操作。
继承性:反应了类与类之间的关系,主要利用特定对象之间的共有属性,子类继承父类后,就拥有了父类的成员变量和船员方法,同时添加自己独特的属性,以实现代码的复用,提高效率,减少错误。
多态性:在面对父类继承产生的多个子类时,可以利用父类的通用特点来解决面对不同子类相同类型的问题,比如我要喝酒,喝茶,喝咖啡,我没必要专门去准备多个杯子,只需要准备一个喝水的杯子,然后喝茶我把盖盖上,喝咖啡我把勺带上即可,从而节约资源,否则这次我买了三个杯子回来一样用一个,将来如果我想喝其他东西了, 还要再去买其他杯子,不像我之前只用一个杯子,现在继续用这个杯子就可以了。多态的三个特点:继承,即多种用法一个杯子;重写,即喝茶盖盖子,喝饮料带吸管,为了适应不同目的而稍微改动;子类对象指向父类引用,即不管喝的是什么,这个杯子都是水杯,喝茶时声明:水杯——装着茶,喝酒时声明:水杯——装着酒。但是这样做也有坏处,就是子类特有的特点是不能利用这个来实现的,比如我希望能透过杯体看到里面红酒的颜色,那就得需要子类特有方法——买个高脚玻璃杯来实现。
h.当一个对象是null,你访问了这个对象的成员变量或成员方法就会产生空指针异常。在创建类时应该格外注意是否有给变量赋值以及变量初始化的值是否为空。
i.对象的内存:方法及方法的局部变量储存在栈区,而变量具体内容会在堆区新划分一块区域并储存,具体内容若存在引用,则具体内容存在方法区,将地址赋给栈区中变量内容,再将变量内容地址赋给栈区中变量名;栈区中的调用方法运行结束后,其在栈区中的空间就会被释放,而堆区和方法区中的内容若无对象引用它,则会被垃圾回收器清理;所以若定义了两个新变量p1,p2,并且p1=p2,则当对p1中的变量内容进行修改时,其实修改的是堆区中的变量内容,而p1和p2指向堆区的地址一致,所以p2也会跟着改变,而不是想象中的只有p1改变而p2不变。
明天计划的事情:
继续深入了解类,同时将昨天的遗留问题解决,越深入越发现自己的无知啊
希望能速度提上来,效率高一点
遇到的问题:
当一个类中调用方法太多时,会有点晕,而且经常忘记调用方法时的指向问题
收获:
1.深入理解了方法以及其中的相关概念,包括形参,实参,返回值等
2.深入了解了类和对象的概念以及创建方法和注意点
3.再看之前类中看不懂的各种花式引用方法可以看懂了
评论