java基础知识点一(上)

来源:互联网 发布:我是传奇知乎 编辑:程序博客网 时间:2024/06/06 21:39

面向对象概念:

一切皆对象!

对象来源于生活,多于生活。

面向对象实际就是人认识世界的思想过程。

面向对象就是按照人的思维来思考事物。

面向过程直接考虑怎么做,而面向对象先考虑让谁做的问题,再考虑怎么做的问题。

 

面向对象的特征:

封装,继承,多态

 

类:

类是具体事物的抽象,对象即是该类事物实实在在存在的个体。

描述事物就是描述对象的属性和行为。

属性就是类中的成员变量,行为就是类中的方法,也就是函数。

(类在代码中写作class ,于后面的字节码文件Class 不同)

 

成员变量和局部变量的区别:

1.定义位置不同:成员变量定义在类中,局部变量定义在函数中;

2.作用域不同:成员变量的作用域在整个类中都可以访问,局部变量只能在当前函数中。

3.存放位置不同:成员变量存放在对象的堆内存中,局部变量存放在对象的栈内存中。

4.初始化值不同:成员变量有默认的初始化值,局部变量没有默认的初始化值(所以一定要记得给局部变量赋初始值)。

 

创建对象:

对象名 简称 = new 对象名();

对象名就是你所创建哪个类的名字

创建匿名对象:

new 对象名();

对象里的方法只使用一次,使用后被垃圾回收机制清除掉,不再占用堆内存。

匿名对象可以作为实际参数进行传递。

当输出的对象实例实际上是输出toString的返回值,例:

publicclass Test1 {

      public staticvoid main(String[] args) {

           System.out.println(new test());

      }

}

class test{

      @Override

      public String toString() {

          return "输出了test";

      }

}

 

 

构造函数:

函数名和类名相同,没有返回值。

在对象创建时,有些对象就有默认的初始值,所以用构造函数来初始化。

创建对象是,系统默认创建一个无参数的构造函数。

多个构造函数是以重载的形式存在的。

this代表本类对象的引用。

This可以访问构造方法(注意:this调用只能放在构造方法的第一行)

一旦自定义有参数的构造方法,系统不再自动创建无参数的构造方法。

 

static(静态):

static用来修饰成员变量或成员函数(修饰成员变量时,可以实现数据共享)

当分析对象中所具备的成员变量的值都是相同的,这时这个成员就可以被静态修饰

从源代码看,该功能是否需要访问非静态的成员变量,如果需要,该函数就是非静态的。反之,就用静态函数。

被static修饰的成员特点:

随着类的加载而加载

优先于对象存在

被所有对象所共享

可以直接被类名调用

注意:

静态方法只能访问静态成员

静态方法中不可以写this,super关键字

主函数是静态的

 

成员变量和静态变量的区别:

1,两个变量的生命周期不同。

成员变量随着对象的创建而存在,随着对象的被回收而释放。

静态变量随着类的加载而存在,随着类的消失而消失。

2,调用方式不同。

成员变量只能被对象调用。

静态变量可以被对象调用,还可以被类名调用。

3,别名不同。

成员变量也称为实例变量。

静态变量称为类变量。

4,数据存储位置不同。

成员变量数据存储在堆内存的对象中,所以也叫对象的特有数据.

静态变量数据存储在方法区(共享数据区)的静态区,所以也叫对象的共享数据.

 

main的理解:

package test;

 

publicclass Test1 {

 

      public staticvoid main(String[] args) {

          for (int i = 0; i < args.length; i++) {

                 System.out.println(args[i]);

           }

 

      }

}

首先一个Class文件中只有一个public的class类,而且这个类名必须和Class字节码文件名相同。

main函数是一个公共的,没有返回值类型的静态函数,因为通常情况下, 如果要运行一个类的方法,必须首先实例化出来这个类的一个对象,然后通过"对象名.方法名()"的方式来运行方法,但是因为main是程序的入口,这时候还没有实例化对象,因此将main方法声明为static的,这样这个方法就可以直接通过“类名.方法名()”的方式来调用。

虚拟机通过调用某个指定类的方法main启动,传递给main一个字符串数组参数,你可以在cmd运行java时在后面跟上字符串。例如:

javac Test1.java     (先编译一下,如果有了.class文件直接忽略此步,编译后在当前目录新建一个文件夹,命名和包名相同,然后吧.class文件放入)


(可以直接在后面空格一下然后跟字符串。当输入的字符串中有空格,就会在下一行显示。)

注意:当你引入了包的时候运行时要创建一个文件夹,然后把生成的.class文件放入包名的文件夹中,否则会报NoClassDefFoundError,如果用的是myEclipse就cd 进入 工作空间\工程名\bin ,然后运行test.Test1。

 

0 0
原创粉丝点击