精华内容
下载资源
问答
  • (这部分对于java来说一个非常重要的知识)今天心情好,来学习一下java中的类和对象!Java什么?Java一门面向对象的编程语言(OOP),想要理解Java,首先要理解类(Class)和对象(Object)这两个概念Java中的类...

    1首先说说类和对象是怎么那回事。(这部分对于java来说是一个非常重要的知识)

    今天心情很好,来学习一下java中的类和对象!

    Java是什么?Java是一门面向对象的编程语言(OOP),想要理解Java,首先要理解类(Class)和对象(Object)这两个概念。

    Java中的类可以看成C语言的结构体的升级版。结构体是一种构造数据类型,可以包含不同的成员(变量),每个成员的数据类型可以不一样,可以通过结构体来定义结构体变量,每个结构体拥有相同的性质,举个栗子:

    #include

    int main(){

    // 定义结构体 Student

    struct Student{

    // 结构体包含的变量

    char *name;

    int age;

    float score;

    };

    // 通过结构体来定义变量

    struct Student stu1;

    // 操作结构体的成员

    stu1.name = "小艾";

    stu1.age = 19;

    stu1.score = 99;

    printf("%s的年龄是 %d,成绩是 %f\n", stu1.name, stu1.age, stu1.score);

    return 0;

    }

    运行结果:  小艾的年龄是19,成绩是99

    Java中的类也是一种构造数据类型,但是对C语言中的结构体有所升级,进行了一些扩展,类的成员不但可以是变量,还可以是函数(方法),通过类定义出来的变量也有特定的称,叫做“对象”,例如:

    public class Hello {

    public static void main(String[] args){

    // 定义类Student

    class xuesheng{ // 通过class关键字类定义类

    // 类包含的变量

    String name;

    int age;

    float score;

    // 类包含的函数

    void expect(){

    System.out.println( name + "的年龄是 " + age + ",成绩是 " + score );

    }

    }

    // 通过类来定义变量,即创建对象

    xuesheng stu1 = new xuesheng(); // 必须使用new关键字

    // 操作类的成员

    stu1.name = "小艾";

    stu1.age = 19;

    stu1.score = 99f;

    stu1.expect();

    }

    }

    运行结果:  小明的年龄是15,成绩是92.5

    2.再来对上述语句作解释

    xuesheng stu1 = new xuesheng();

    通常把这条语句的动作称之为创建一个对象,其实,它包含了四个动作。

    1)右边的“new xuesheng”,是以xuesheng类为模板,在堆空间里创建一个xuesheng类对象(也简称为xuesheng对象)。

    2)末尾的()意味着,在对象创建后,立即调用xuesheng类的构造函数,对刚生成的对象进行初始化。构造函数是肯定有的。如果你没写,Java会给你补上一个默认的构造函数。

    3)左边的“xuesheng stu 1”创建了一个xuesheng类引用变量。所谓xuesheng类引用,就是以后可以用来指向xuesheng对象的对象引用。

    4)“=”操作符使对象引用指向刚创建的那个Vehicle对象。

    我们可以把这条语句拆成两部分:

    xuesheng stu 1;

    stu11 = new stu1();

    效果是一样的。这样写,就比较清楚了,有两个实体:一是对象引用变量,一是对象本身。

    在堆空间里创建的实体,与在数据段以及栈空间里创建的实体不同。尽管它们也是确确实实存在的实体,但是,我们看不见,也摸不着。不仅如此,

    我们仔细研究一下第二句,找找刚创建的对象叫什么名字?有人说,它叫“xueshng”。不对,“xuesheng”是类(对象的创建模板)的名字。

    一个Vehicle类可以据此创建出无数个对象,这些对象不可能全叫“Vehicle”。

    对象连名都没有,没法直接访问它。我们只能通过对象引用来间接访问对象。

    为了形象地说明对象、引用及它们之间的关系,可以做一个或许不很妥当的比喻。对象好比是一只很大的气球,大到我们抓不住它。引用变量是一根绳, 可以用来系汽球。

    如果只执行了第一条语句,还没执行第二条,此时创建的引用变量stu1还没指向任何一个对象,它的值是null。引用变量可以指向某个对象,或者为null。

    它是一根绳,一根还没有系上任何一个汽球的绳。执行了第二句后,一只新汽球做出来了,并被系在stu1这根绳上。我们抓住这根绳,就等于抓住了那只汽球。

    再来一句:

    xuesheng stu2;

    就又做了一根绳,还没系上汽球。如果再加一句:

    stu2 = stu1;

    系上了。这里,发生了复制行为。但是,要说明的是,对象本身并没有被复制,被复制的只是对象引用。结果是,stu2也指向了stu1所指向的对象。两根绳系的是同一只汽球。

    如果用下句再创建一个对象:

    stu2 = new xuesheng();

    则引用变量stu2改指向第二个对象。

    从以上叙述再推演下去,我们可以获得以下结论:

    (1)一个对象引用可以指向0个或1个对象(一根绳子可以不系汽球,也可以系一个汽球);

    (2)一个对象可以有N个引用指向它(可以有N条绳子系住一个汽球)。

    如果再来下面语句:

    stu1 = stu2;

    按上面的推断,stu1也指向了第二个对象。这个没问题。问题是第一个对象呢?没有一条绳子系住它,它飞了。多数书里说,它被Java的垃圾回收机制回收了。

    这不确切。正确地说,它已成为垃圾回收机制的处理对象。至于什么时候真正被回收,那要看垃圾回收机制的心情了。

    由此看来,下面的语句应该不合法吧?至少是没用的吧?

    new xuesheng();

    不对。它是合法的,而且可用的。譬如,如果我们仅仅为了打印而生成一个对象,就不需要用引用变量来系住它。最常见的就是打印字符串:

    System.out.println(“I am Java!”);

    字符串对象“I am Java!”在打印后即被丢弃。有人把这种对象称之为临时对象。

    对象与引用的关系将持续到对象回收

    在C语言中,通过结构体名称就可以完成结构体变量的定义,并分配内存空间:C语言Struct Student stu1这样不但定义了结构体变量,并且也分配了内存空间。

    但是在Java中,仅仅通过类来定义变量不会分配内存空间的,必须使用new关键字来完成内存空间的分配:Student stu=new Student()。(实际上这条语句相当于Student stu;stu=new Student;这两句代码,第一句代码的意思是创建stu这样一个变量,第二条语句是给stu分配内存空间)。

    可以将类比喻成图纸,对象比喻成零件,图纸说明了零件的参数;一张图纸可以生产出具有相同性质的零件,不同图纸可以生产不同类型的零件。

    在Java中,使用new关键字就能创建一个对象,即将图纸生产成零,这个过程叫做类的实例化,因此也称为对象是类的一个实例。

    注意:类只是一张图纸,起到说明的作用,不占用内存空间;对象才是具体的零件,要有地方来放,才会占用内存空间。

    类所包含的变量和函数都有特定的称呼,变量被称为属性,函数被称为方法,属性和方法统称为类的成员。

    展开全文
  • 作为java中的一个重要理念,说起面向对象老生常谈了。在找资料时候多是很专业术语,又或者多框架知识点合集,其实大部分人刚看资料时候不能理解。本篇对面向对象的一些基础概念进行介绍,尽量以...

    作为java中的一个重要理念,说起面向对象也是老生常谈了。在找资料的时候多是很专业的术语,又或者很多框架的知识点合集,其实大部分人刚看资料的时候是不能理解的。本篇对面向对象的一些基础概念进行介绍,尽量以通俗的语言展现给大家,分为概念、好处、与面向过程区别和最重要的三大特征。

    1.概念

    面向过程是以函数为基础,完成各种操作,强调过程;就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

    2.设计和开发程序的好处

    (1)交流更加流畅

    (2)提高设计和开发效率

    (3)面向对象的思想符合人类思维习惯

    3.面向对象和面向过程区别

    面向过程:事物比较简单,可以用线性的思维去解决。

    面向对象:事物比较复杂,使用简单的线性思维无法解决。

    共同点:都是解决实际问题的一种思维方式。解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系,方便我们分析整个系统;具体到微观操作,仍然使用面向过程方式来处理。

    面向过程的三个特征是:封装、继承、类。

    4.面向对象语言的三大特点

    (1)继承:从已有类创建新类的过程。

    父类(超类/基类):提供继承信息的类

    子类(派生类):得到继承信息的类

    (2)封装:隐藏一切可隐藏的实现细节提供简单的编程接口。私有属性,公有方法。好处:将变化隔离;便于使用;提高重用性,安全性。

    (3) 多态:

    方法重写:子类对父类的方法给出自己的实现版本。

    对象造型:用父类型的引用去引用子类对象。

    到此这篇关于java中面向对象的概念及知识点总结的文章就介绍到这了,更多相关java中面向对象的概念详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    展开全文
  • 继承:所谓继承,其实面向对象中的一个很重要的特性。继承从已有的类派生出新的类,新的类能够具有已有类的属性和方法(行为)。就好比从爸爸那里获取到他所知的所有知识(父亲也就是这样无私的)。Java当中...

    前几天自己走了一套题,对于java当中几个常用的几个概念不是很清晰了,所以,最近想来回顾一下。
    继承:所谓继承,其实是面向对象中的一个很重要的特性。继承是从已有的类中派生出新的类,新的类能够具有已有类的属性和方法(行为)。就好比从爸爸那里获取到他所知的所有知识(父亲也就是这样无私的)。Java当中是不支持多继承的,就像你一样,你不可能拥有两个亲生父亲。但是Java当中是支持实现多个接口的,这样也算是实现了多继承。话不多说,写个最简单的继承来看看。
    eg:
    class Animal
    {
    String name=”dddd”;
    public void say()
    {
    System.out.println(this.name);
    }
    public Animal()
    {
    System.out.println(“Animal created”);
    }
    }
    class Dog extends Animal
    {

    public void say()  
    {  
        System.out.println("hello "+this.name);  
    }  
    public Dog()  
    {  
        System.out.println("Dog created");  
    }  
    

    }
    public class MyTest{
    public static void main(String[] args) {
    Dog a = new Dog();
    a.say();
    System.out.println(a.name);
    }
    }
    这就是这段代码的控制台打印
    可以看见,其实继承是先实现了父类的构造函数,然后才实现自己的构造函数。在继承的过程当中,子类是继承了父类所有的属性,虽然是隐式的,但是你需要调用的时候也是能够实现的。
    Animal a = new Dog();
    a.say();
    System.out.println(a.name);
    同时,这样的写法也是可以的。我的理解是,对于一个继承的对象,他是可以归属同一个父类的。(不知道对不对,欢迎指正)先写到这里,后期继续更。

    展开全文
  • Java新手入门很重要的几个基本概念 final类:为防止他人从你的类上派生新类,此类不可扩展的。  动态调用比静态调用花费的时间要长。  多态类:在java中对象变量多态的。而java中不支持多重继承。  ...

    Java新手入门很重要的几个基本概念

    final类:为防止他人从你的类上派生新类,此类是不可扩展的。

      动态调用比静态调用花费的时间要长。
      多态类:在java中,对象变量是多态的。而java中不支持多重继承。
      抽象类:规定一个或多个抽象方法的类本身必须定义为abstract。
      例: public abstract string getDescripition
      Java中的每一个类都是从Object类扩展而来的。
      object类中的equal和toString方法。
      equal用于测试一个对象是否同另一个对象相等。
      toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示。
      (toString 方法是一个很重要的方法)
      通用编程:任何类类型的所有值都可以同object类型的变量来代替。
      封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)。
      重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载。编译器必须挑选出调用哪个方法。
      数组列表:ArrayList动态数组列表,是一个类库,定义在java.uitl包中,可自动调节数组的大小。
      class类 object类中的getclass方法返回class类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类。
      就业方向:
      可以从事JSP网站开发、Java编程、Java游戏开发、Java桌面程序设计,以及其他与Java语言编程相关的工作。可进入电信、银行、保险专业软件开发公司等从事软件设计和开发工作。
      Java与C/C++的差异
      
    熟悉C语言和C++语言的读者一定想搞清楚这个问题,实际上,Java确实是从C语言 和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物.比如Java语言的变量声明,操作符形式,参数传递,流程控制等方面和 C语言,C++语言完全相同.尽管如此,Java和C语言,C++语言又有许多差别,主要表现在如下几个方面:
      (1) Java中对内存的分配是动态的,它采用面向对象的机制,采用运算符new为每个对象分配内存空间,而且,实际内存还会随程序运行情况而改变.程序运行 中,每个, Java系统自动对内存进行扫描,对长期不用的空间作为”垃圾”进行收集,使得系统资源得到更充分地利用.按照这种机制,程序员不必关注内存管理问题,这 使Java程序的编写变得简单明了,并且避免了了由于内存管理方面的差错而导致系统出问题.而C语言通过malloc()和free()这两个库函数来分 别实现分配内在和释放内存空间的,C++语言中则通过运算符new和delete来分配和释放内存.在C和C++这仲机制中,程序员必须非常仔细地处理内 存的使用问题.一方面,如果对己释放的内存再作释放或者对未曾分配的内存作释放,都会造成死机;而另一方面,如果对长期不用的或不再使用的内存不释放,则 会浪费系统资源,甚至因此造成资源枯竭.
      (2) Java不在所有类之外定义全局变量,而是在某个类中定义一种公用静态的变量来完成全局变量的功能.
      (3) Java不用goto语句,而是用try-catch-finally异常处理语句来代替goto语句处理出错的功能.
      (4) Java不支持头文件,面C和C++语言中都用头文件来定义类的原型,全局变量,库函数等,这种采用头文件的结构使得系统的运行维护相当繁杂.
      (5) Java不支持宏定义,而是使用关键字final来定义常量,在C++中则采用宏定义来实现常量定义,这不得于程序的可读性.
      (6) Java对每种数据类型都分配固定长度.比如,在Java中,int类型总是32位的,而在C和C++中,对于不同的平台,同一个数据类型分配不同的字节 数,同样是int类型,在PC机中为二字节即16位,而在VAX-11中,则为32位.这使得C语言造成不可移植性,而Java则具有跨平台性(平台无关 性).
      (7) 类型转换不同.在C和C++中,可通过指针进行任意的类型转换,常常带来不安全性,而在Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换.
      (8) 结构和联合的处理.在C和C++中,结构和联合的所有成员均为公有,这就带来了安全性问题,而在Java中根本就不包含结构和联合,所有的内容都封装在类里面.
      (9) Java不再使用指针.指针是C和C++中最灵活,也最容易产生错误的数据类型.由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个 内存地址进行显式类型转换后,可以访问一个C++中的私有成员,从而破坏安全性.而Java对指针进行完全地控制,程序员不能直接进行任何指针操作.

     

     

    --------------------------------------------------------------------------------------------------
    我们的淘客网开通啦,欢迎大家去逛逛 ~\( ≧▽≦ )/~ 啦啦啦 ~~~
    淘乐园: http://taoleyuan.jimdo.com
    淘宝购物资讯网: http://taoke178.jimdo.com

     

    展开全文
  • 也许,抽象OOP最令人困惑的概念。 大多数人倾向于认为抽象与接口和抽象类有关。 但这不是真的。 根据我的经验,大多数程序员对此事没有充分而适当的理解。 因此,今天将您真正了解一般抽象和Java抽象的一天。 ...
  • 但是还是先将Java中的重要概念复习一下吧,觉得如果这个没有理解的话,Java的学习会难受,了解源码的时候就会十分吃力,所以就先按照我的理解介绍一下Java中重要的概念。 1.面向对象 Java最重要的应该就是面向...
  • 菜鸟学习笔记:Java基础篇3面向对象的思想对象和类的概念 面向对象的思想 在之前的教程往往都会反复强调什么c语言面向过程的语言啦,Java是面向对象的语言啦,什么面向对象和面向过程有大区别了。。。。。。...
  • 这一部分比较艰深,但是对于理解面向对象的概念非常重要,因此也面试出题频率高的一个环节。 要学习这部分的主要内容,首先要掌握一些背景知识。 一.面向对象: 面向对象的概念也就是那些理论部分网上有...
  • 随着编程经验不断...再后来就是接触到了Java,我在Java中接触到最多就是利用面向对象的思想编程,当时,感觉使用这种面向对象思想编程非常别扭,非常不舒服,没有面向对象更加直接,后来,在逐渐Java...
  • Java面向对象的最重要的一个特点就是多态, 而多态当中涉及到了一个重要的机制是动态...对象是Java中重要的概念, 弄清楚对象方法的调用执行过程会对Java对象有更深层了理解。下面是<Core Java>中对调用过程
  • 学习好比盖房子,打地基好很重要,房了能盖多高关键看地基;...在以往的工作学习,笔者总结了一些Java非常重要的知识点或者说基本概念,进入正题: 1、面向对象编程(OOP):OOP最重要的思想类,类...
  • 什么才是java中的多态呢?多态性是指的面向对象程序设计代码重用的一个重要的机制,对于Java多态性,应该都不是第一次才听到的。大一部分的java程序员会把多态看作对象的一种能力,使其能调用正确的一个方法版本。...
  • 其中一个概念是Java中的构造函数,它是一个非常重要的概念,因为它涉及类和对象。构造函数是一种特殊的Java在编程方面是一种通用语言。尽管学习起来容易,但首先必须掌握基本概念。其中一个概念是Java中的构造函数...
  • Java多线程几个重要概念

    千次阅读 2004-10-20 11:31:00
    Java多线程几个重要概念 Java多线程范例图 从中我们可以看到所有线程都在JVM里运行,而且共享一个主内存(图中的Global Memory),同时各自拥有自己工作内存(图中的Local Variables)。理解Java这一基本...
  • (1)首先,要引申出类:类是面向对象的一个很重要的概念,因为类是很多个具有相同属性和行为特征的对象所抽象来的,对象是类的一个实例。 (2)然后,围绕类的三个特征来说:封装、继承和多态。可以结合实际生活或者...
  • 基本概念 1.OOP唯一关心的是对象的接口什么,就像计算机销售商她不管电源内部结构怎样,他只关心能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有程序由一定属性和行为对象...
  • JAVA中一些基本概念

    2008-07-13 15:42:00
    基本概念 1.OOP唯一关心的是对象的接口什么,就像计算机销售商她不管电源内部结构怎样,他只关心能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有程序由一定属性和行为对象...
  • Java ...同时单根继承在GC里也起了大作用,通过Object类型引用来管理所有对象,把必要垃圾回收相关工作放在基类去实现。 C++不是单根继承,C++里通过STL(标准模板库)使用来实现泛型编
  • Java的30个基本概念

    2007-05-01 13:14:00
    Java的30个基本概念 1.OOP唯一关系的是对象的接口什么,就像计算机销售商她不管电源内部结构怎样,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有程序由一定属性...
  • Java的概念与使用

    2021-01-02 14:23:09
    作为一门面向对象的语言,对于类的理解是很重要的。那么什么类呢?作用什么以及有什么特性呢? 一、什么类 类可以看成对于对象在编程里的描述,程序员使用类来实现一个对象的概念。类一个模板,描述一类...
  • 我个人觉得,JAVA之所以能够经久不衰,有一个很重要的原因就是:JAVA的理论总是给人一种,虽然不知道什么,但是感觉很厉害的样子。就单这一点,他就已经超越许多其他语言了,至少吹牛的时候谈资总是很多。  ...
  • 类是面向对象一个重要概念,类是多个具有相同属性和行为特征对象抽象出来对象是一个实例。类具有三个属性:继承、封装和多态。封装:通过把程序模块化、对象化,通过把这些具体事物特性属性和通过...
  • 作为一门面向对象的语言,对于类的理解是很重要的。那么什么类呢?作用什么以及有什么特性呢?一、什么类类可以看成对于对象在编程里的描述,程序员使用类来实现一个对象的概念。类一个模板,描述一类对象...
  • 接口并不是类,编写接口的方式和类相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类抽象类,否则该类要定义接口的所有方法。接口无法被实例化,但是可以被...
  • java面向对象的特征

    2018-03-08 11:37:22
    对象:由行为、状态和唯一标志组成。 一 抽象 抽象忽略一个主题与当前目标无关的方面,把现实世界中的概念转换为...抽象概念建模和业务流程建模很重要的工具,面向对象体系的基石,而不是一堆杂乱、混乱、...
  • Java基础概念

    2021-01-27 14:41:01
    Java提供了多内置的类库,通过这些类库,简化了开发人员的程序设计工作,同时缩短了项目的开发时间,例如,Java语言提供了对多线程的支持,提供了对网络通信的支持,最重要的是提供了垃圾回收器,使得开发人员从对...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 762
精华内容 304
关键字:

对象是java中很重要的概念

java 订阅