`
somewhater
  • 浏览: 4779 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

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");
}

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

 

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

3
2
分享到:
评论
2 楼 somewhater 2013-03-20  
keke8614 写道
对于面向对象的理解还有很长段路要走,你只是理解了JAVA基本的语法而已。毫不夸张如果面向对象如果理解好了你就是高级软件工程师了

受教~
1 楼 keke8614 2013-03-20  
对于面向对象的理解还有很长段路要走,你只是理解了JAVA基本的语法而已。毫不夸张如果面向对象如果理解好了你就是高级软件工程师了

相关推荐

    JAVA2学习资料--第二部分ppt教程

    Java作为全球最流行的编程语言之一,因其跨平台、面向对象的特点,被广泛应用于各种领域,如企业级应用开发、移动应用(Android)、大数据处理等。本教程主要针对Java2阶段的学习,旨在帮助初学者深入理解和掌握Java...

    java知识总结------关键知识点总结

    Java 语言是一个广泛使用的编程语言,它以其面向对象的特性、强大的安全性以及跨平台兼容性而闻名。在本文中,我们将深入探讨一些关键的 Java 知识点,这些知识点对于理解和掌握 Java 编程至关重要。 1. **作用域**...

    Java面向对象程序设计讲课提纲

    总之,Java面向对象程序设计涵盖了从基础语法到高级特性的全面知识,对于想要从事Java开发的程序员来说,这是一个必不可少的学习领域。通过深入理解和实践,开发者能够创建出高效、稳定且易于维护的软件系统。

    JAVA基础阶段总结

    - **面向对象**:JAVA 是一种完全面向对象的语言,支持类、对象、继承、封装、多态等概念,极大地提升了软件开发的能力。 - **分布式**:JAVA 支持数据和操作分布在不同网络节点上的应用。这使得开发者可以构建出...

    Java面向对象程序设计(第3版)-PPT课件

    《Java面向对象程序设计(第3版)》是人民邮电出版社出版的一部经典教材,由杨晓燕和李选平两位专家共同编著。该书深入浅出地讲解了Java编程语言的核心概念和面向对象编程思想。PPT课件是教学辅助资料,通常包含了...

    JAVA面向对象基础

    ### JAVA面向对象基础知识点详解 #### 一、面向对象编程语言的发展史 面向对象编程(Object-...掌握面向对象的基础概念,对于任何想要深入学习和应用Java或其他面向对象语言的开发者来说,都是至关重要的第一步。

    ACCP5.0S2教程\使用Java实现面向对象编程(Java OOP)\使用Java实现面向对象编程(Java OOP)上机贯穿案例源码

    本资源是针对"ACCP5.0 S2"阶段的Java OOP上机贯穿案例,旨在帮助学习者深入理解和应用面向对象编程。"ACCP5.0 S2"可能是一个计算机编程课程或培训计划的一部分,其中S2可能代表课程的第二阶段,而"Java OOP上机贯穿...

    使用Java创建机器学习项目 - 一个实战教程

    这个实战教程提供了一个从头到尾的Java机器学习项目框架,帮助开发者理解并实践机器学习的各个阶段,同时也强调了数据预处理、模型选择和优化的重要性。通过这样的实践,可以增强对机器学习的理解,为未来解决更复杂...

    精通Java EE项目案例--基于Eclipse Spring Struts Hibernate (例子中的初始化SQL)

    Hibernate通过提供一套API,使得开发者可以使用面向对象的方式来操作数据库,而无需关注底层的SQL语句。 回到这个资源包,"database"文件很可能是包含了一系列的SQL脚本,这些脚本用于初始化项目所需的数据表结构和...

    Java作业和代码 Java-se阶段代码 Java学习资料

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、健壮性和安全性著称。在"Java作业和代码"以及"Java-se阶段代码"的主题中,我们可以深入探讨Java的基础知识、核心概念以及它在软件开发中的应用。这个压缩包...

    java面向对象选择题题库

    ### Java面向对象选择题知识点详解 #### 一、Java源文件命名规则 - **选项解析**: - **错误选项**:源文件名没有限制、必须使用`.class`扩展名。 - **正确选项**:Java 源文件的名称必须与其中定义的公共类名...

    面向对象与java程序设计期末试卷及答案

    - **面向对象**:Java是一种面向对象的语言,支持类、对象、继承、封装、多态等面向对象的基本概念。 - **垃圾收集机制**:Java提供了自动垃圾收集机制,能够自动回收不再使用的对象,避免了内存泄漏问题。 2. **...

    8.java学习第八章——面向对象.pdf

    Java 学习第八章——面向对象 #### 面向过程与面向对象的区别 在讨论面向过程和面向对象之前,我们先明确几个概念。编程语言根据其编程范式可以分为多种类型,其中面向过程和面向对象是最常见的两种。 **面向...

    java入门之Java2-3-4

    在编程世界中,Java是一种广泛应用的面向对象的编程语言,以其跨平台、安全性高、性能稳定等特点备受开发者青睐。本教程“Java入门之Java2-3-4”是针对初学者精心设计的,旨在帮助新手快速掌握Java的基础知识和核心...

    Java 基础 第2阶段:面向对象编程-尚硅谷学习笔记(含面试题) 2023年

    面向对象编程是Java的核心特性,本学习笔记涵盖了这一主题的深度探索,旨在帮助开发者深入理解并熟练运用面向对象的思想。2023年的版本更新可能包含最新的面试趋势和技术发展。以下将详细介绍Java面向对象编程的一些...

    JAVA面向对象编程入门课程标准.doc

    - **面向对象编程(OOP)**: Java的核心特性之一,通过类和对象的概念来组织代码。 - **课程目的**: 掌握Java这门高级面向对象编程语言,理解面向对象编程的基本原理,并具备基本的编程能力。 #### 二、课程性质与...

    CoreJava考试试题---达内科技.pdf

    根据给定的文件信息,我们可以总结出一系列关于Java编程语言的重要知识点,这些知识点不仅涵盖了基本的语法和概念,还深入到了面向对象编程的核心原理。以下是详细的解析: ### 1. 文档注释与Javadoc - **知识点:...

    使用Java实现面向对象编程课件

    在Java语言中,面向对象编程是其核心特性之一,使得Java成为企业级应用开发的首选语言。以下是对"使用Java实现面向对象编程"这一主题的详细阐述。 1. **类与对象**:Java中的所有数据结构都以类的形式存在,类是...

    java-learning & java-safety

    2. **类与对象**:Java是一种面向对象的语言,理解类和对象的概念至关重要。学习如何创建类,定义属性和方法,以及如何实例化对象。 3. **封装、继承和多态**:这是面向对象编程的三大特性。封装保护了数据的安全,...

    Java 基础 第1阶段:基本语法-尚硅谷学习笔记(含面试题) 2023年

    Java是一种广泛使用的面向对象的编程语言,以其跨平台性、高效性和安全性著称。本学习资料专注于Java的基础语法,这是每个Java程序员必须掌握的核心知识。2023年的"Java 基础 第1阶段:基本语法——尚硅谷学习笔记...

Global site tag (gtag.js) - Google Analytics