java基础知识点

  • 格式:doc
  • 大小:88.00 KB
  • 文档页数:8

学习方法

1、基本功 背程序。多敲,多写

2、坚持不懈

3、多积累问题,通常爱热心帮助其他人的,在这方面都是非常强悍的。

4、多看书,(thinking in java)(java 编程思想)

5、温故而知新,多去温习前面学过的知识

6、多找题目,

7、多交流

面向对象概述

面向过程思想:强调的是功能和行为

面向对象思想:将功能封装进对象,强调具备功能的对象

面向对象的三个基本特征。封装 继承 多态

什么是类:类就是对现实生活中事物的描述。描述事物其实就是在描述事物的属性行为

什么是对象:对象就是这类事物中实实在在的个体

为什么定义类:根据需求,以后的开发其实就是在找对象,没有就要创建一个对象

对象必须具备:属性和方法

面向对象的特点:找对象,建立对象,使用对象,维护对象的关系

面向对象内存分析

Cat c=new Cat();

面向对象的一些知识点·

类中的属性被称为成员变量(每个对象的属性都不同)

类中的方法被称为成员方法(每个对象共享类中的方法)

方法的种类:

1、无参无返回 public void get(){}

2、无参有返回 public int get(){}

3、有参无返回 public void get(String A){}

4、有参有返回 public String get(int a){}

根据需求来定义属性和方法

关键字

return 返回语句,被用于返回

this 用来指当前对象

(注释:1、在类的方法定义中使用this关键字代表使用该方法的对象的引用。2、有时使用this可以处理方法中成员变量和参数重名的问题。3、this可以看作一个变量他的值是当前对象的引用。)

private 隐藏类中方法或属性对外界的可见性,常用于封装

toString 每个类的一个默认方法,用于把类以字符串显示

(注释:1、在JAVA中,所有对象都有toString()这个方法。2、创建类时没有定义toString方法输出对象时会输出对象的哈希码值。3、他通常只是为了方便输出,例如:System.out.println(xx);,括号里面的“xx”如果不是String类型的话,就自动调用xx的toString()方法。4、它只是sun公司开发java的时候为了方便所有类的字符串操作而特意加入的一个方法。) 封装

1、封装(encapsulation)就是把不想或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开。

2、做法:修改属性的访问权限或者限制对属性的访问。并为每一个属性创建一对取值方法和赋值方法,用于对这些属性的访问。

方法的重载

方法的重载是指一个类中可以定义有相同的名字,但参数不同的多个方法,调用时会根据不同的参数列表选择对应的方法。

构造方法(构造函数)

1、使用 new+构造方法 创建一个新的对象。

2、构造函数是定义在java类中的一个用来初始化对象的函数。

3、构造函数与类同名且没有返回值。

约定俗称的命名规则

1、类名首字母必须大写

2、方法和属性必须小写

3、由多个单词组成的类名或方法必须采用驼峰标识

如:类名 StudentAdmin 方法或属性:studentName

构造代码块

1、特点:对象一建立就运行了,而且优先于构造函数执行

2、作用:给对象进行初始化

3、构造代码块和构造方法的区别:

构造方法是给对应的对象进行初始化,构造代码块是给所有的对象进行统一的初始化

4、构造代码块中定义是不同对象共性的初始化内容

构造函数之间的调用

1、this:看上去,用来区分局部变量和成员变量同名的情况

2、this:就是代表本类的对象,this代表它所在函数(方法)所属对象的引用

3、构造函数之间的调用只能通过this语句来完成

4、构造函数之间进行调用时this语句只能出现在第一行,初始化要先执行,如果初始化当中还有初始化,那就去执行更细节的初始化

Static 关键字

作用:是一个修饰符,用于修饰成员(成员变量,成员方法)

(注释:不可以修饰局部变量)

1、被static修饰后的变量只有一份

2、当成员被static修饰之后,多了一种访问方式,除了可以被对象调用之外,还可以被类直接调用

(格式:类名.方法名)

static的特点:

1、随着类的加载而被加载

2、优先于对象的存在 3、被所有的对象所共享的

4、可以直接被类名所调用

(注释:被static修饰过的成员变量称为静态变量,也称为类变量。没有被static修饰过的成员变量称为实例变量)

存放位置:

1、.类变量随着类的加载而存在于data内存区

2、实例变量随着对象的建立而存在于堆内存

生命周期:

1、类变量生命周期最长,随着类的消失而消失

2、实例变量生命周期比类变量短,它是随着对象的消失而消失

方法的注意事项:

1、静态的方法只能访问静态的成员

2、非静态的方法既能访问静态成员(成员变量,成员方法)也能访问非静态成员(成员变量,成员方法)

3、静态的方法中是不可以定义this super关键字。因为静态成员优先于对象存在,所以静态方法不可以出现this

什么时候使用静态:

static所修饰的内容是成员(成员变量,方法)

从两个方面入手:

1.什么时候使用静态成员变量:当属于同一个类的所有对象出现共享数据时,需要将储存这个共享数据的成员变量用static修饰

2.什么时候使用静态方法:当功能内部没有访问到非静态的成员时(对象特有的数据)那么该功能可以定义成静态的

主函数(主方法)

1、public(访问修饰符,公共的)代表该类或者该函数访问权限是最大的

2、Static 代表主函数随着类的加载就已经存在了

3、void 代表主函数没有具体的返回值

4、main main不是java中的关键字,它是一个特殊的单词,它能够被JVM(java虚拟机)所识别

5、String[] args 函数的参数,参数类型是一个字符串数组,该数组的元素是字符串

静态工具类

1、每一个应用程序都有共性的功能,可以将这个些功能进行抽取,独立封装。让其可以重复使用

2、对象的作用:对象是用来封装数据的,只要这个类里面有非静态的成员时,那对象就必须存在。

静态代码块

1、格式:

{

System.out.print(“我是静态代码块”)

}

2、特点:随着类的加载而执行,并且只会执行一次,并且优先于主函数

3、作用:用于给类进行初始化

对象初始化过程

示例:

Class Student{

Static{

System.out.println(“我是静态代码块”);

}

{

System.out.println(“我是构造代码块”);

}

void print(){

System.out.println(“我是普通方法”);

}

private String name=”小贝”;

Private static String country;

}

Public class Stu{

public static void main(String[] args){

Student S=new Student();

}

}

1、因为new Student()用到了Student类,所以会把它从硬盘上加载进入内存

2、如果有static静态代码块就会随着类的加载而被执行,还有静态成员和普通方法也会随着类的加载而被加载

3、在堆中开辟空间,分配内存地址

4、在堆中建立对象特有属性,并同时对特有属性进行默认初始化

5、对属性进行显示初始化

6、执行构造代码块,对所有对象进行初始化

7、执行对应的构造函数,对对象进行初始化

8、将内存地址给S(也就是给栈中的变量)

Java23种设计模式

设计模式:针对此类问题最有效的解决方法

单例设计模式:解决一个类中只能在内存中存在一个对象

如何让一个类在内存中只存在一个对象呢?

1、禁止其他的应用程序通过此类来创建对象(将默认构造方法私有化)

2、既然外部不能通过此类创建对象了,我们要用对象就可以在本类里面创建本类对象

3、为了其他应用程序能够访问到本类里面创建的对象,我需要对外界提供一种访问方式

如何用代码体现出来:

1、私有化构造方法

2、在本类中创建本类对象

3、对外界提供访问的方法

4、示例代码:

class Person{ String name;

private Person{

}

static Person p=new Person();

public static Person getInstance(){

Return p;

}

}

public class Per{

public static void main(String[] args){

Person A=Person.getInstance();

=”小明”;

Person B=Person.getInstance();

System.out.println();

/*

这里new了两个对象,并调用了getInstamce()方法,由于getInstamce()方法是被static修饰的,且静态代码块只会执行一次,所以两个对象调用的getInstamce()方法返回的都是同一个内存地址,那么当A对象对对象特有属性进行修改后,B对象的特有属性也会被修改

*/

}

}

继承 extends

继承的概述_1:

1、提高了代码的复用性,简化了代码

2、让类与类之间产生了继承关系,才有了后面的多态特性的存在

注意:千万不要为了获取其他类的功能简化代码而建立继承关系,必须要类与类之间存在继承关系

继承关系:is a

被继承的称为:父类,超类,基类

继承的称为:子类

继承概述_2:

1、子类拥有父类的成员,子类不能拥有父类中被private修饰后的成员

2、Java多层继承:在多层继承中最下层子类拥有整个继承体系的成员,最上层的父类里面定义了所有子类的共性描述

3、Java中不支持多继承(c++语言中支持),只支持单继承。因为多继承存在安全隐患,当多个父类中定义了相同的成员,子类对象不确定运行哪一个。但Java中保留了这种机制,并用了另一种方式来体现 多实现(通过接口来实现)

父类中的成员

成员:

1、成员变量 2、函数 3、构造函数

变量:

1、this代表当前对象的引用,this.变量 首先在本类中找所需要的这个变量,如果没有找到再到父类中找

2、super 用于访问当前对象的父类成员,super.变量 直接在父类中找所需变量

子父类中的函数:

当子类中出现和父类中一样的函数时,子类对象调用该函数,运行的是子类中的函数,如同父类中的函数被覆盖了