发表于: 2017-10-10 22:05:15

1 686


今日完成的事情:

系统学习语法基础

说说最基础的概念吧,感觉真正理解这些底层最基础的概念很有意义,看的多了就与那些生硬的代码关联起来了。首先说类:类是一个模板,它描述一类对象的行为和状态;而对象是类的一个实例,有状态和行为。接着是状态,即对象的状态,是由这实例变量值决定,而实例变量又是每个对象所特有的;然后是行为,即对象的行为是由方法决定的,一个类可以有很多方法。步骤;首先是定义一个类,也就是起个名字,然后是定义属性,也就是成员变量说明类有什么;最后是定义方法,用来说明干什么。


//定义一个类,名字叫phone
public class Phone
{
//属性定义,也就是说这个类有什么状态
   float screen;
   float cpu;
   float measure;
   //成员变量,可以被调用,作用域整个类内部,程序自动赋初始值
   int var;
   // 定义方法,可以做什么
   void call()
{
int localVar = 0;//局部变量,只能在方法内部中使用,而且必须给局部变量赋初始值
       System.out.println("localVar:" + localVar);
       System.out.println("screen:" + screen + " cpu: " + cpu + " measure: " + measure + " phone可以打电话");
   }
void sendMessage()
{
System.out.println("var:" + var);//成员变量,可以被调用,作用域整个类内部
       System.out.println("phone可以发短信");
       //System.out.println("localVar:" + localVar);局部变量,只能在方法中使用


然后是代码所出现的一些关键字,其实有一类叫修饰符,是用来修饰类中方法和属性。主要有两类,访问控制修饰符 : default, public , protected, private非访问控制修饰符 : final, abstract, strictfp还有就是自己所写的,类名、变量名以及方法名,都被称为标识符。(实际上一段代码基本上就是由这些关键字以及自己所写的类名组成,剩下就是靠语法连一块了)

继承;Java中,一个类是可以由其他类派生,如果你要创建一个类,而且已经存在一个类具有你所需要的属性或方法,那么你可以将新创建的类继承该类。利用继承的方法,可以重用已存在类的方法和属性,而不用重写这些代码。被继承的类称为超类,派生类称为子类,这里提到了各种类,实际上都差不多(基类,父类,超类是指被继承的类,派生类,子类是指继承于基类的类,只是角度不一样而已,子类继承了父类,父类派生了子类)

 

接口;接口可理解为对象间相互通信的协议吧,就是一种规范,就像u盘接口,插座接口。它在继承中扮演着很重要的角色,通常是定义一个接口,然后继承接口里的类,然后写接口的实现方法,接口只定义派生要用到的方法,但是方法的具体实现完全取决于派生类,方法以及实现可以进一步理解,按照接口规范进行方法调用,就能获得所期望的功能,按照接口规范实现接口的的方法,就能提供所期望的功能;就像三孔插座接口,任何电器只要是符合三个插头的都可以获得电力,但是厂家制造插座必须符合规范必须是三孔,同时插头的制造也要符合三头,这就是接口的规范,这里的插座插头制造方法很多,但是只要按照三来做,就可以提供电力,就可以获得电力。这也可以看出方便性,若是没有这个接口,插头造的是两头,插座是一孔的,那肯定不能组合用了,也就没有交互了;这也就是软件开发工作的协作性:插头和插座分别是不同人完成的,有了接口大家就能分头开干,都按照接口来办事,各自做完就能轻松地整合到一起。各部分的测试也更加方便。另一方面也可以看出,接口本身必须十分稳定,接口一旦定制,就不允许随意修改,否则对接口实现类以及接口访问都会造成影响。插座接口现在改为五空,那么之前造好的插座插头都要报废了。

 

学习方法,昨天说了普通方法的定义,今天学了类的定义,而类的定义又包含了一个构造方法,我才发现这是两种截然不同的方法,前者是普通方法,只是说明对象干什么,而构造方法是是用来创建对象的,用来初始化对象的,就像之前创造对象是通过new 关键字加类名,就可以实例化一个对象,其实new后面的是一个构造方法,也就是说创建对象就会使用到构造方法;同时构造方法是没有返回值的,名称与类名相同,参数的话自定义可有可无,也就是无参有参的构造,接着就是代码块了,这里主要是初始化。

public class Phones
{
float screen;
   float cpu;
   float measure;
   public Phones()
{
System.out.println("这就是无参构造,可以省略不写");
   }
public Phones(float newScreen, float measure, float cpu)
{
screen = newScreen;//参数名字可一自定义,类型对就可以,但是这里需要赋值
       if (newScreen < 3.5f)
{
System.out.println("你输入的参数有问题,自动赋值3.5");
           screen = 3.5f;
       } else
       {
screen = newScreen;
       }
System.out.println("这就是有参的,创建对象时传入参数");
       System.out.println("screen: " + screen + " measure: " + measure + " cpu: " + cpu);
   }


 明日计划的事情:

进一步学习加强完善语法基础


遇到的问题及解决方法:

明天尽量结束语法基础,我的问题是,好基友没调整好,聊了很久,这两天送他回家,我也尽快调整好。


收获:

一直说Java语言是一个纯的面向对象程序设计语言,而一个Java程序可以认为是一系列对象的集合,这些对象通过调用彼此的方法来协同工作。一直不理解,随着学习Java语言提供的类、接口和继承等特性,似乎都是专门为面向对象而设计的;类之间的单继承,接口之间的多继承,类与接口之间的实现机制implements,以及方法的调用这些都是主要核心,学习过程中要似乎也逐渐和代码联系起来,慢慢理解,学起来似乎就不那么痛苦了。回头再看代码,其实最难的还是语法,整段代码关键字就那么多,各种类名都是自己定义的,那么理解了语法,代码应该也可以通了。




返回列表 返回列表
评论

    分享到