zoukankan      html  css  js  c++  java
  • 类与对象学习总结

    对象:是具体的事物 xiaoming  xiaohong, Object, instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。

    类:class。是对对象的抽象(抽象à抽出象的部分)Person

    先有具体的对象,然后抽象各个对象之间象的部分,归纳出类通过类再认识其他对象。

      生活案例

    –  类是一个图纸  对象是根据该图纸制造多个实物

    –  类是一个模具   对象是使用模具制造的多个铸件(月饼模子 )

    –  类是上海大众汽车,对象就是大家购买的一辆辆具体上海大众汽车

      对象和类的关系:

    –  特殊到一般,具体到抽象。

    –  类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

    –  类是用于描述同一类形的对象的一个抽象的概念,类中定义了这一类对象所应具有的静态和动态属性。

    –  JDK提供了很多类供编程人员使用,编程人员也可定义自己的类。

    如何定义类:

    修饰符 class 类名{

             //属性(成员变量)

          修饰符 数据类型  变量名;

            //方法

             修饰符 返回值类型 方法名(参数列表){

                方法体;

              [return 返回值]

    }

    }

      创建对象

    –  类名 对象名 = new 类名();

    –  Person p1=new Person();

    –  调用类的属性和方法

    –  对象名.成员变量

    局部变量和成员变量

      区别

    –  声明位置不同  类中   方法中

    –  作用范围不同:  当前类的方法   当前方法

      不同的方法中即使有同名的局部变量,没有关系,互不影响,建议相同

    –  内存存放的位置的:栈内存中   堆内存中

    –  成员变量有默认值;局部变量没有默认值

    引用类型   

      Java 语言中除基本类型之外的变量类型都称之为引用类型。

      Java中的对象和数组是通过引用对其操作的.

    –  引用可以理解为一种受限的指针

    –  指针是可以进行与整数做加减运算的,两个指针之间也可以进行大小比较运算和相减运算。引用不行,只能进行赋值运算。

    –  引用就是一个变量或对象的别名(引用的本质是一个对象);指针是一个段内存空间的地址(指向存储一个变量值的空间或一个对象的空间)

    内存分析

      栈:

    –  存放:局部变量

    –  先进后出,自下而上存储

    –  方法执行完毕,自动释放空间

      堆:

    –  存放new出来的对象

    –  需要垃圾回收器来回收

      方法区:

    –  存放:类的信息(代码)、 static变量、字符串常量等.

      构造器定义: constructor 构造方法

    –  一个在创建对象时被自动调用的特殊方法。

    –  构造器作用:

    –  为对象进行初始化(成员变量)工作。

    –  构造器是一种特殊的方法:

    –  构造器的方法名必须和类名一致!

    –  构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不能在构造器里调用return。

    –  通过new关键字调用!!

    –  如果我们没有定义构造器,则系统会自动定义一个无参的构造方法。如果已定义则编译器不会添加无参数构造方法!

    –  与普通方法一样,构造方法也可以重载

    this关键字:

    –  this表示的是当前对象本身,

    –  更准确地说,this代表当前对象的一个引用。

      普通方法中使用this。

    –  区分类成员属性和方法的形参.

    –  调用当前对象的其他方法(可以省略)

    –  位置:任意

      构造方法中使用this。

    –  使用this来调用其它构造方法

    形参和实参

    –  定义方法的参数是形式参数

    –  调用方法的参数是实在参数

    –  调用方法时要求参数个数相同,类型兼容

    –  参数传递

    –  基本数据类型的参数传递

      无法通过方法调用改变变量的值

    –  引用数据类型的参数传递

      可以通过方法调用改变变量的值

    static 关键字 

    ◦       它为该类的公用变量,属于类,被该类的所有实例共享,在类被载入时被显式初始化,

    ◦       对于该类的所有对象来说,static成员变量只有一份。被该类的所有对象共享!!

    ◦       可以使用”对象.类属性”来调用。不过,一般都是用“类名.类属性”

    ◦       static变量置于方法区中!

    ◦       用static声明的方法为静态方法

    ◦       不需要对象,就可以调用(类名.方法名)

    ◦       在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可访问非static的成员。

    ◦       静态方法不能以任何方式引用this和super关键字

      静态初始化块

      如果希望加载后,对整个类进行某些初始化操作,可以使用static初始化块。

      类第一次被载入时先执行static代码块;类多次载入时,static代码块只执行一次;Static经常用来进行static变量的初始化。

      是在类初始化时执行,不是在创建对象时执行。

      静态初始化块中不能访问非static成员。

    pakage

      为什么需要package?

    –  为了解决类之间的重名问题。

    –  为了便于管理类:合适的类位于合适的包!

      package怎么用?

    –  通常是类的第一句非注释性语句。

    –  包名:域名倒着写即可,再加上模块名,并与内部管理类。

      注意事项:

    写项目时都要加包,不要使用默认包。

    com.gao和com.gao.car,这两个包没有包含关系,是两个完全独立的包。只是逻辑上看起来后者是前者的一部分。

    Java中常用的包

      java.lang:包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。

      java.awt:包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。

      java.net:包含执行与网络相关的操作的类。

      java.io:包含能提供多种输入/输出功能的类。

      java.util:包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。

    以上就是学习笔记总结

     
  • 相关阅读:
    实用JS代码
    javascript-table出现滚动条表格自动对齐
    Javascript-关于for in和forEach
    Javascript-关于break、continue、return语句
    如何编写可怕的Java代码?
    请停止编写这么多的for循环!
    如何优雅地在Stack Overflow提问?
    为什么阿里巴巴Java开发手册中强制要求不要在foreach循环里进行元素的remove和add操作?
    Java异常处理只有Try-Catch吗?
    看完这篇还不会用Git,那我就哭了!
  • 原文地址:https://www.cnblogs.com/1147blog/p/6692716.html
Copyright © 2011-2022 走看看