java阶段性学习总结-----开始面向对象(一)

  从自己稀稀拉拉的从图书馆里面借书看,再到真正的认识了面向对面这个神秘的东西,已经完全认识到这门课程,或者说这么语言的重要性。

  面向对象,顾名思义,对象是重中之重,那么什么是对象?怎么去定义对象?怎么开始面向对象?

  举个例子:我是一个学生,我在现实中是确确实实存在的,我就是一个对象,我属于学生这个类里面的,学生有各种,大学生,小学生,高中生。如果在代码中体现,并且我作为这个学生类里面的一个对象,需要去被使用的话,那么该怎么使用呢?

  看如下代码:

  

Student   stu  =  new Student();

 new 是关键字,本条代码的意思就是,从Student这个类里面new了一个stu的对象,我们已经从类里面新建了一个stu的对象了,那么这个stu的对象就可以去参与我们即将要完成的任务,所谓的任务,就是已经写好了的方法。

  既然提到了方法,什么是方法?学习必须要带着问题,去自己探索,自己研究。

  方法,就是对象使用的方法,他是给对象来服务的,由类生对象,由对象,引申至方法。方法就是对象即将去做的事情,这里我们给上述的stu对象来创建他即将要实现,要做的一个study方法。

  

public void study(){

     
      System.out.println("学习啦");


}

   

   方法已经写好了,那么怎么去调用呢?格式是怎么样的呢?

   我们已经有了一个stu对象了,那么要想让stu调用我们的study方法,有如下的代码格式,这是固定的,说不清的规则,有时候只能去遵守。

   

stu.study();

    那么在控制台就会打印:学习啦

    当多次调用这个方法的时候就会打出相对应次数的:学习啦

 

    既然提到了方法,就不得不提一下在这个阶段,需要知道的内容:构造器

 

    什么是构造器?构造器有什么用,他的代码格式,以及需要注意的东西有哪些呢?别急,我们慢慢来探讨。

    首先,每个方法都有一个默认的无参构造器,这里,我们又接触了一个新的名词,无参,

 即为没有参数。构造器就是构造方法,但是和一般的方法也有少许的差别。

 

  默认的无参构造方法:

   

public Student(){

     

}

 当然还有这样的构造方法:比如说,在构造方法的时候我们要初始化某些特定的值:

public Student(String name ){

   this.name=name;
}

 或者是这样:

public Student(String name ,int age){
   this.name = name ;
   this.age   = age;

}

 所以,当创建对象的时候,就可以在后面的括号中,传递对应方法中的几个值,也就赋予了对象的初始值;

  Student stu2 = new Student(name,age);

 构造器与一般的方法有什么区别呢?

  严格的来讲,构造器不能算是方法,因为它里面可以传入参数,像 String name ,int age。构造器方法没有任何返回值的定义,且必须与类名相同。构造器方法只有在创建对象时调用,对于一个对象而言,他的构造器只能调用一次。注意:每个类都有一个默认的无参构造器,这个构造器在代码中不会体现出来,但是如果重新写了一个有参数的构造器,默认的无参构造器就不能被调用。

 

 

构造器讲完了,下面来说一下值传递与引用传递;

 

值传递:java中有八种基本数据类型,这些类型的数据在调用传递时蹲守”值传递“规则;

 

 

 

public class Student {
	   public void  change(int t){
	        t=100;

	  }
}

 

public class Manager{
    public static void main (String args[]){

        Student stu1=new Student();
           int i=1000;
            stu1.change(i);
System.out.println("这里的i的值是"+i);

  }



}

 

测试后的i的值为1000;

 

 

引用传递:首先要知道什么是引用;

前面我们已经根据Student 类创建了一个stu的对象,当我们说stu的时候就指向了一个学生的对象,但是这个学生的对象和这个stu是两个东西,我们不能说这个stu就是学生,也不能说学生就是stu,就是给了一个具体对象一个名字,叫stu,可以说stu  引用了学生这个对象;

那么就很容易理解引用传递这个概念了,就是一些带有名字的对象,相互之间进行渗透 ,进行相互赋值或者交换的时候,这个名字本身和这个对象发生了变化,对象存储在了这个名字所命名的空间当中,并且可以与其他同等条件下的其他对象进行的传递,就是引用传递;

 

下面再讲两个比较基础也是比较常用的问题:继承与接口

 

前面我们已经写好了一个Student类,这是一个学生的类,但是现在我们需要一个大学生类,大学生和学生有什么区别?大学生当然也是学生啦~大学生和学生都是需要学习的,但是不是所有的学生都要去考英语四级,大学生可以考,小学生就不可以,只是举个通俗易懂的例子,读者不要钻牛角尖,说什么天才少年5岁的时候英语就已经过了8级。。。。

 

那么我们这个大学生类,既要完成学生类里面学习的方法,又要考四级

 

那么这种情况就叫做继承,代码格式如下:

public class UNStudent extends Student{


   }

 

 

既然还有考四级这件事情,这件事情是Student无法完成的  因为里面并没有考四级这个方法,所以就必须在我们的大学生UNStudent类里面重写Student方法,添加进去我们要考四级的方法,这就叫重写

 

 

由于继承和重写的机制,得到的结果可能不尽相同,这种情况叫做多态。

 

 

 

接口:

 

 继承的机制,给了我们新的名词,也就是命名,UNStudent叫做子类,Student叫做父类,当子类中将要使用的方法在父类中无法提供的时候,就要在子类中重写父类的方法,这就需要定义接口,来声明,或者说是给定我们子类中的一些数据一些特定的属性和初始值;

接口的代码格式如下:

public interface NetJava{

      public static final int age=20;
      public static final int grade=3;
      public static final String name ="Tom";
}

 接口中没有任何实现的方法,所以接口是不能被创建对象的。

 

这段代码是错误的:

NetJava netj  =  new Netjava();

 接口在使用中也是非常广泛的,一个好的接口可以省去一个程序员不少的麻烦。

 

 

既然上面提到了重写,下面就解释下重写,附加与重载的区别:

先看如下代码:

 

我们已经写了学生学习的方法:那么大学生学习的方法我们进行重写:

 public class UNStudent extends Student{

     public void study(){
       String name = a;
       int age=30;
        System.out.println("学习的人的名字是"+name,“学习的年龄是”+“age”);


   }



}

 

重载的代码如下:

 

 public void study(String name,int age){
    name = a;
    age=30;
    System.out.println("学习的人的名字是"+name,“学习的年龄是”+“age”);


   }

public void study(int age,String name ,int hour){


System.out.println("重载方式1");

}



public void study(int age,int hour,String name){
System.out.println("重载方式2");

}



public void study(int hour){

System.out.println("重载方式3");
}

 由上述代码可以看出,重写只是对已有属性的更改,重载而是对传递的参数的个数,顺序等进行更改,区别显而易见。

 

阶段性总结告一段落,笔者能力有限,理解程度也有限,还望多多指正批评。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值