说明:
Java oo的相关知识实在是太多了,甚至每个知识点都可以写一篇文章,这里介绍一些基础的和对应知识点提示。
概述:
1.类和对象
Java万物皆是对象,旨在将世界中的概念模拟到计算机程序中,它将现实世界中的所有事物视为对象。
对象的描述是通过特征和行为来描述的,特征是对事物的静态描述,行为是对事务的动态描述。
对应到程序中就是特征就是属性(成员变量)和行为就是方法。
多个对象具有的相同特征和行为,我们将这样的特征和行为抽象出来,形成一个新的单元,这个单元称作是类。
类是具有相同属性和共同行为的一组对象的抽象集合。
类是面向对象程序设计中的基本单元。
对象是实体,而类是概念模型,用来定义对象的所有特征和行为。同一类的所有对象都拥有相同的特性和行为。
你我他都是真真实实存在的,而人类是对你我他这样的真实存在的实体的共有特征和行为的描述。
2.java oo
类的基本组成:成员变量、构造函数、方法
成员变量:成员变量定义在类中,与之对应的局部变量在某个代码块中,它的有效范围是当前所在代码块中
构造函数:默认构造方法和构造方法的重载
方法:方法的定义、方法参数传递机制、重载和重写、递归、动态参数
《Java入门 之 方法》
权限修饰符:public、protected、default、private
包的概念:主要是为了解决重名问题,java导入分为导入和静态导入
继承:java只支持单继承
封装
多态:体现在方法的重载和重写
抽象类和抽象方法
接口:对行为的声明
3.几个关键字
this:指代当前对象自身,例如:this.name、this.show()等。
《Java入门 之 this》
super:代表继承某些成员变量
static:静态的 可以修饰成员变量、方法,也可用于静态代码块。
《Java基础 之 static》
final:代表最终的 不可变化的,可用来修饰变量(常量)、参数、方法、类
《Java入门 之 final》
extends:继承关键字 用在类名后面
implements:实现接口关键字 用在类名后面
abstract:用来修饰抽象类和抽象方法关键字
interface:代表一个接口
package com.cxyapi.oo;
/** 面向对象知识点总结
* @author cxy @ www.cxyapi.com
*/
public class OoTest1
{
public static void main(String[] args)
{
/**
* User是一个类(模子、模版、一个定义、设计图)
* u1是一个对象(具体的实例、一个具体的user,而不仅仅是个概念)
* 实例化相关的理解:
* 1.new 后面跟构造函数 来实例化一个对象。
* 2.u1只是一个引用变量,它存放的是对象的地址,而不是对象本身。
*/
User u1=new User("cxy");
u1.show(); //user的行为,介绍展示自己
}
}
/** 一个用户model,是一个类 一个模型 抽象的概念
*@author cxy @ www.cxyapi.com
* 包括:Field-成员变量(属性,特征)、构造函数、方法(行为,操作)
*/
class User
{
/** 成员变量:名字
* 对于一个标准的JavaBean或者model来说应当
* 将成员变量设置成私有,然后对其生成getter、setter
* 这也是保证封装行的体现
*/
private String name;
/** 构造方法
* 1.这个是带参数的构造方法。
* 2.系统默认提供一个不带参数的构造方法,但是如果定义了一个带参数的 那系统默认的构造方法就会失效。
* 3.this用法体现之一:参数和成员变量名字一样,这时候this指代的就是当前要构造的对象的name。
*/
User(String name)
{
this.name=name;
}
//介绍自己
public void show()
{
//这里的this指代的就是当前调用show方法的这个对象,其实这里可以省略不写
System.out.println("大家好 我叫"+this.getName());
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
声明:
1.原创文章,转载请标明并加本文连接。
2.文章反映个人愚见,如有异议欢迎讨论指正
3.更多的内容请看我的 个人博客(测试版)