`

Java OO 知识总结

    博客分类:
  • java
阅读更多

说明:

Java oo的相关知识实在是太多了,甚至每个知识点都可以写一篇文章,这里介绍一些基础的和对应知识点提示。

 

 

概述:

1.类和对象

  1. Java万物皆是对象,旨在将世界中的概念模拟到计算机程序中,它将现实世界中的所有事物视为对象。
  2. 对象的描述是通过特征和行为来描述的,特征是对事物的静态描述,行为是对事务的动态描述。
  3. 对应到程序中就是特征就是属性(成员变量)和行为就是方法。
  4. 多个对象具有的相同特征和行为,我们将这样的特征和行为抽象出来,形成一个新的单元,这个单元称作是类。
  5. 类是具有相同属性和共同行为的一组对象的抽象集合。
  6. 类是面向对象程序设计中的基本单元。
  7. 对象是实体,而类是概念模型,用来定义对象的所有特征和行为。同一类的所有对象都拥有相同的特性和行为。
  8. 你我他都是真真实实存在的,而人类是对你我他这样的真实存在的实体的共有特征和行为的描述。

2.java oo

  1. 类的基本组成:成员变量、构造函数、方法
  2. 成员变量:成员变量定义在类中,与之对应的局部变量在某个代码块中,它的有效范围是当前所在代码块中
  3. 构造函数:默认构造方法和构造方法的重载
  4. 方法:方法的定义、方法参数传递机制、重载和重写、递归、动态参数
    《Java入门 之 方法》
  5. 权限修饰符:public、protected、default、private
  6. 包的概念:主要是为了解决重名问题,java导入分为导入和静态导入
  7. 继承:java只支持单继承
  8. 封装
  9. 多态:体现在方法的重载和重写
  10. 抽象类和抽象方法
  11. 接口:对行为的声明

3.几个关键字

  1. this:指代当前对象自身,例如:this.name、this.show()等。
    《Java入门 之 this》
  2. super:代表继承某些成员变量
  3. static:静态的 可以修饰成员变量、方法,也可用于静态代码块。
    《Java基础 之 static》
  4. final:代表最终的 不可变化的,可用来修饰变量(常量)、参数、方法、类
    《Java入门 之 final》
  5. extends:继承关键字 用在类名后面
  6. implements:实现接口关键字 用在类名后面
  7. abstract:用来修饰抽象类和抽象方法关键字
  8. 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.更多的内容请看我的  个人博客(测试版)

 

4
3
分享到:
评论
4 楼 jsd_lxf 2014-04-13  
赞成
3 楼 snkcxy 2013-04-22  
今年不是龙年 写道
         * User是一个类(模子、模版、一个定义、设计图) 
         * u1是一个对象(具体的实例、一个具体的user,而不仅仅是个概念) 
         * 实例化相关的理解: 
         *  1.new 后面跟构造函数 来实例化一个对象。 
         *  2.u1只是一个引用变量,它存放的是对象的地址,而不是对象身。 
         */ 
        User u1=new User("cxy");

我是一只小菜鸟 但是对你上面描述的我有点不同的意见,如果错了,请给我指正  谢谢 
  User u1 这个是声明一个u1变量而已 只是这个变量的类型是一个对象类型而已 也是大神经常说的句柄(句柄应该是只唯一标识符之类的吧),放在栈中
        new User("cxy");  创建了一个引用对象,存放在堆中
        User u1=new User("cxy");这句的意思是讲栈中变量u1指向创建在堆中的new User("cxy"); 
        

是我表述的有问题嘛?实际和你说的是一个意思吧?只不过没有站到内存角度去说
2 楼 今年不是龙年 2013-04-21  
         * User是一个类(模子、模版、一个定义、设计图) 
         * u1是一个对象(具体的实例、一个具体的user,而不仅仅是个概念) 
         * 实例化相关的理解: 
         *  1.new 后面跟构造函数 来实例化一个对象。 
         *  2.u1只是一个引用变量,它存放的是对象的地址,而不是对象身。 
         */ 
        User u1=new User("cxy");

我是一只小菜鸟 但是对你上面描述的我有点不同的意见,如果错了,请给我指正  谢谢 
  User u1 这个是声明一个u1变量而已 只是这个变量的类型是一个对象类型而已 也是大神经常说的句柄(句柄应该是只唯一标识符之类的吧),放在栈中
        new User("cxy");  创建了一个引用对象,存放在堆中
        User u1=new User("cxy");这句的意思是讲栈中变量u1指向创建在堆中的new User("cxy"); 
        
1 楼 snkcxy 2013-03-14  
欢迎大家补充~

相关推荐

Global site tag (gtag.js) - Google Analytics