面向对象(OO)初步认识
2016-09-08 18:34
246 查看
每个人在了解JAVA是什么样的编程语言的过程中一定都听说过这样一句话,万物皆对象。在初学JAVA基础语法的过程中,我们都做过一个个题目练习,这种练习都是围绕则要解决的问题的过程去书写的,在学习完成JAVA基础语法后,今天总结下个人初步对JAVA的精髓面向对象,及object to object.
结构话和OO的区别
1. 在结构化编程中,程序围绕解决的任务来设计
2. 面向对象编程中,程序围绕这问题域中的对象来设计
什么是对象
1. 对象是存在的具体的实体,具有明确特征和行为
2. 万物皆对象,对象因我关注而产生
项目当中那些东西需要我们关注,项目的需求是什么,确定需要关注的对象的特征和行为
什么是面向对象
1. 面向对象是一种认识事物的方式,注重对事物整体的认知,最符合人类的自然思维习惯
2.人在接触新鲜事物接受的过程:接触新事物->有什么特征->干什么用->怎么使用
3.对象的产生一定是数据封装的结果
什么是类
1. 把相同的特征和行为归纳其他就是一个类
2.类是就有相同属性和行为的一组对象的集合
3. 在软件系统中,我门用类来茉莉现实生活中的实体
4.类是对象的抽象,对象是类的实例
在JAVA编程的过程中,需要使用到new关键字为类创建一个对象实例,只有new后,对象才在内存空间真实存在
new 关键字创建类的实例,即对象
对象的属性:属性是对象的特征,每个对象都有自己独立的属性值,一个对象的属性发生变化,不会影响另外一个对象的属性,属性是封装在对象中的变量,是对象的成员,属性也叫成员变量
需要注意对象引用类型空指针null 异常
1. null表示一个变量没有指向任何对象,也就是没有存放任何对象的地址,对null进行属性和方法的调用,会抛出空指针异常。
2.如果一个对象没有被变量所指向,那么该对象就符合垃圾回收的条件。
空指针异常
对象的引用
对象的引用存放的是地址,通过地址查找存放地址内的属性值,所有一处修改地址内的属性值,其他引用这个对象的引用类型里的属性值都会变化
静态变量,static
1.静态变量是成员共享的,静态变量改变后,所有共享这个属性的对象内的属性值都会发生变化,静态成员变量为同一个类的对象共享属性
2.由于静态变变量是手游对象共享的变量,可以通过 类名.静态变量名 的方式访问
3. 静态变量也要类变量
下面一段代码演示了成员变量与静态变量(类变量)的特点
输出结果
静态变量和成员变量的区别
1. 成员变量是对象的组成部分,每个对象有不同的成员变量,当一个对象成员变量改变后,不会影响其他对象
2. 静态变量是独立在对象之外的,很多对象共享一个静态变量,当静态变量发生改变后,会影响所有对象
3. 静态变量加载的时机在对象之前,而成员变量随对象产生而产生
4. 成员变量的访问只能通过对象.的方式进行访问,静态变量可以通过对象.和类名.的方式访问
对象数组
对象数组不能直接复制,因为数组初始话为null,会报空指针,需给对象赋值,然后对象的引用(地址)传递给数组的引用(地址)
以下代码演示了就我个人的对象数组赋值思路
结构话和OO的区别
1. 在结构化编程中,程序围绕解决的任务来设计
2. 面向对象编程中,程序围绕这问题域中的对象来设计
什么是对象
1. 对象是存在的具体的实体,具有明确特征和行为
2. 万物皆对象,对象因我关注而产生
项目当中那些东西需要我们关注,项目的需求是什么,确定需要关注的对象的特征和行为
什么是面向对象
1. 面向对象是一种认识事物的方式,注重对事物整体的认知,最符合人类的自然思维习惯
2.人在接触新鲜事物接受的过程:接触新事物->有什么特征->干什么用->怎么使用
3.对象的产生一定是数据封装的结果
什么是类
1. 把相同的特征和行为归纳其他就是一个类
2.类是就有相同属性和行为的一组对象的集合
3. 在软件系统中,我门用类来茉莉现实生活中的实体
4.类是对象的抽象,对象是类的实例
在JAVA编程的过程中,需要使用到new关键字为类创建一个对象实例,只有new后,对象才在内存空间真实存在
new 关键字创建类的实例,即对象
对象的属性:属性是对象的特征,每个对象都有自己独立的属性值,一个对象的属性发生变化,不会影响另外一个对象的属性,属性是封装在对象中的变量,是对象的成员,属性也叫成员变量
//创建一个类 public class Man { //创建一个Man类,具有name,age,job三种成员变量属性 public String name; public int age; public String job; public static void main(String[] args) { int x = 8;// 基本类型,放的X=8 // 创建类的实例,及对象 // man是引用类型,man放的是对象的引用地址即放的对象Man的地址,里面存放name,age,job三个数据 ,man.name表示Man地址你存放的name Man man = new Man(); man.name = "小强"; man.age = 18; man.job = "木匠"; System.out.println(man.name + " " + man.age + " " + man.job); //new 关键字创建类的对象实例,虽然两个对象都是new Man,具有相同属性类型,其实他们指的两个人,一个叫man 一个叫man1 Man man1 = new Man(); man1.name = "光头强"; man1.age = 40; man1.job = "伐木工"; System.out.println(man1.name + " " + man1.age + " " + man1.job); //此段代码表明,修改对象实例的属性,只会修改对应的对象,而不会对同一个类的其他对象造成影响 man1.job="铁匠"; System.out.println(man.name + " " + man.age + " " + man.job); System.out.println(man1.name + " " + man1.age + " " + man1.job); } }
需要注意对象引用类型空指针null 异常
1. null表示一个变量没有指向任何对象,也就是没有存放任何对象的地址,对null进行属性和方法的调用,会抛出空指针异常。
2.如果一个对象没有被变量所指向,那么该对象就符合垃圾回收的条件。
空指针异常
Exception in thread "main" java.lang.NullPointerException
对象的引用
对象的引用存放的是地址,通过地址查找存放地址内的属性值,所有一处修改地址内的属性值,其他引用这个对象的引用类型里的属性值都会变化
静态变量,static
1.静态变量是成员共享的,静态变量改变后,所有共享这个属性的对象内的属性值都会发生变化,静态成员变量为同一个类的对象共享属性
2.由于静态变变量是手游对象共享的变量,可以通过 类名.静态变量名 的方式访问
3. 静态变量也要类变量
下面一段代码演示了成员变量与静态变量(类变量)的特点
public class ClassWork_2 { public String name; public int age; public String job; //静态变量 public static String earth; public static void main(String[] args) { ClassWork_2 c1=new ClassWork_2(); c1.age=18; c1.job="销售员"; c1.earth="污染地球"; ClassWork_2 c2=new ClassWork_2(); c2.age=15; c2.job="修理工"; c2.earth="保护地球"; //引用类型地址的传递 ClassWork_2 c3=new ClassWork_2(); c3=c2; System.out.println(c1.age+" "+c1.job+" "+c1.earth); System.out.println(c2.age+" "+c2.job+" "+c2.earth); System.out.println(c3.age+" "+c3.job+" "+c3.earth); } }
输出结果
静态变量和成员变量的区别
1. 成员变量是对象的组成部分,每个对象有不同的成员变量,当一个对象成员变量改变后,不会影响其他对象
2. 静态变量是独立在对象之外的,很多对象共享一个静态变量,当静态变量发生改变后,会影响所有对象
3. 静态变量加载的时机在对象之前,而成员变量随对象产生而产生
4. 成员变量的访问只能通过对象.的方式进行访问,静态变量可以通过对象.和类名.的方式访问
对象数组
对象数组不能直接复制,因为数组初始话为null,会报空指针,需给对象赋值,然后对象的引用(地址)传递给数组的引用(地址)
以下代码演示了就我个人的对象数组赋值思路
import javax.swing.JOptionPane; public class ArrayTest { public static void main(String[] args) { //方法1 创建一个Man对象,引用为m Man m = new Man(); m.age = 18; m.job = "厨师"; m.name = "张三"; Man Array[] = new Man[3]; // 把m的地址给Array的第一个数据地址 Array[0] = m; System.out.println(Array[0].age + " " + Array[0].job + " " + Array[0].name); //方法2new对象赋值 Array[2]=new Man(); Array[2].age=18; Array[2].job="xxx"; Array[2].name="xxx"; //方法3循环赋值需全部去掉数组中的null for(int i=0;i<Array.length;i++){ //Array[]数组中的数全面为m Array[i]=new Man(); } Array[2].name="xxx"; System.out.println(Array[1].name); } }
相关文章推荐
- JavaScript 中的面向对象的初步认识
- 面向对象(OO)学习记录——个人银行管理初步~
- Java初步认识及面向对象
- 对面向对象的初步认识
- 面向对象的简单初步认识
- 网关的初步认识
- JAVA-初步认识-第八章-继承-子父类中成员变量的内存图解
- (教学思路 c#之面向对象二) 初步理解面向对象的基本概念
- 对UTF8编码的初步认识!
- 关于函数模板与类模板的初步认识
- 面向对象(Object Oriented,OO)
- 初步认识迭代服务器和并发服务器
- 面向对象的认识----类的转化
- xwiki初步认识
- 初步认识asp.net中导入excell
- Linux驱动学习12(初步认识内存管理)
- 初步认识MDL
- JAVA-初步认识-第二章-变量的基本演示
- 基于面向对象(OO)的数据库设计模式探讨 第 1 部分
- TCP 初步认识