`
caiwb1990
  • 浏览: 308028 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java总结-面向对象初步

    博客分类:
  • java
 
阅读更多

面向对象:
	1,它是一种符合现实中人们思考习惯的一种思想。
	2,它的出现可以将复杂问题简单化。
	3,它的出现让程序员的角色从执行者变成了指挥者。

	面对对象是相对于面向过程而言的。
	面向过程:
		强调的是动作,执行过程。
	面向对象:
		强调的是被操作的事物。
	举例:
		多窗口的操作:移动,关闭。
		面向过程:移动窗口,关闭窗口。
			只需要将移动动作完成,关闭动作完成即可。
		面向对象:窗口移动,窗口关闭。
			先对窗口进行描述,并将移动动作和关闭动作定义在窗口中。
		
		其实面对对象是基于面向过程的。


		区别:
			以前是程序员指定窗口操作动过,
			现在是指挥窗口对象,调用其操作动作。
	大象放进冰箱里:
		1,打开冰箱。
		2,将大象存入。
		3,关闭冰箱。
		将冰箱描述描述对象,将打开动作,存储动作,关闭动作定义在该冰箱对象中。
		只要指挥冰箱做事情即可。并将大象作为参数传入。


	面试时:
		问:什么是面向对象呢?
		答:面向对象的三个理解,举例:面试官其实就是在用面向对象的思想思考问题,
		为了提高项目开发效率,你就找到我这个对象,并指挥我这个对象,调用了我的专业编程功能,
		来为公司创造价值。
		对于面试官您来将,就是一个指挥者,您将项目制作过程简单化。
		面对对象还有三大特征:封装,继承,多态。


-----------------------------------

	对象和类的关系:
		类其实就是对事物的描述。而对象其实即使该事物实实在在存在的个体。
		我们使用计算机语言其实就是为了描述现实生活中的事物(万物皆对象)。

		为什么要将事物封装成对象呢?
		因为可以在该事物中定义和其相关的属性和行为。方便于指挥这个对象做事情。


		
		体现在程序中,就是开始时,先要想到是否有已有的对象可以完成所需的功能。
		如果没有相对应的对象,自己就建立一个对象。以便后期重用。

	class Person
	{
		int age;
		String name;
		public void speak()
		{
			System.out.println(name+","+age);
		}
	}
	class PersonDemo
	{
		public static void main(String[] args)
		{
			Person p = new Person();
			p.age = 20;
			p.name = "lisi"
			p.speak();
		}
	}


	匿名对象:其实就是定义对象的简化形式。
		1,当对象对应方法进行一次调用的时候,可以使用匿名对象。
		2,匿名对象可以作为实际参数进行传递。

------------------------------------
	封装:其实就是隐藏实现细节。
		在程序中,函数就是最小的封装体。
			类也是一种封装形式。
			包也是一种封装形式。
			对于框架SSH,也是封装。
	好处:提高安全性。

	开发时,不需要对外提供都隐藏起来。
	
	封装的一种体现形式。

	class Person
	{
		private int age;//私有成员只在本类中有效。这时在其他类中建立对象也访问不到。将age隐藏。
		String name;
		public void speak()
		{
			System.out.println(name+","+age);
		}
	}
	class PersonDemo
	{
		public static void main(String[] args)
		{
			Person p = new Person();
			p.age = 20;//当建立Person对象后,给年龄age赋值时,因为age是int的,所以可以赋予负数-20.
				//但这样不符合现实中的情景。出现了安全隐患。产生问题的原因是什么呢?
				//age直接被访问造成的。为了避免这样的问题,将age私有化。
				
			p.name = "lisi"
			p.speak();
		}
	}


	将成员变量私有化后,通常提供公有方法对其进行访问。
	这样做的好处在于,可以在方法中的加入逻辑判断,以增强程序的健壮性。
	按照规范,每一个成员变量都会对应set,get方法。

	class Person
	{
		private int age;
		private String name;
		public void setAge(int a)
		{
			if(a>130 || a<0)
				System.out.println("no");
			else
				age = a;
		}
		public int getAge()
		{
			return age;
		}
		public void speak()
		{
			
		}
	}
	main()
	{
		Person p = new Person();
		p.setAge(30);
	}


-----------------------------------
			
进制转换:
	十进制-->二进制
	十进制-->十六进制。
	思路:
		可以通过查表法来完成转换动作。
		无论怎样的进制,取到其中一位都可以将该数据作为角标去查对应的表(数组)。

		获取进制中某一位需要通过&运算的形式。
		获取每一位,需要通过将原数据进行右移>>>一定的位数。
		而且这些动作都需要重复执行。

		private static String trans(int num,int base,int offset)
		{

			if(num==0)
				return "0";
			char[] chs = {'0','1','2','3'
					,'4','5','6','7'
					,'8','9','A','B'
					,'C','D','E','F'};
			//定义一个临时容器来存储每一次查表后的结果。
			char[] arr = new char[32];
			int pos = arr.length;

			while(num!=0)
			{
				int temp = num & base;
				arr[--pos] = chs[temp];
				num = num >>> offset;
			}
			
			return toString(arr,pos);

		}
		priavte static String toString(char[] arr,int pos)
		{
			String s = "";
			for(int x=pos; x<arr.length; x++)
			{
				s = s + arr[x];
			}

			return s;

			//return new String(arr,pos,arr.length-pos);
		}

		/*
		十进制-->二进制
		*/
		public static String toBin(int num)
		{
			return trans(num,1,1);
		}

		/*
		十进制-->十六进制 
		*/
		public static String toHex(int num)
		{
			return trans(num,15,4);
		}

		




0
0
分享到:
评论

相关推荐

    125集专攻JAVA基础 JAVA零基础入门学习视频教程 动力节点JAVA视频教程.txt

    北京动力节点-Java编程零基础教程-006-Java语言概述-Java的特点-面向对象.mp4 北京动力节点-Java编程零基础教程-007-Java语言概述-Java的特点-跨平台性.mp4 北京动力节点-Java编程零基础教程-008-Java语言概述-...

    JAVA基础课程讲义

    第三章 JAVA面向对象程序开发 52 编程语言发展史 52 类和对象是如何产生发展的?如何进化的? 52 面向对象思想初步(OOP初步Object Oriented Programming) 53 面向对象编程的语言的三大特征简介 56 对象和类的概念 56 ...

    java课程设计-ATM柜员机模拟程序说课讲解.doc

    java课程设计-ATM柜员机模拟程序 课程设计(大作业)报告 课程名称:面向对象程序设计课程设计 设计题目:ATM柜员机模拟程序 院 系:信息技术学院 班 级: 设 计 者: 学 号: 指导教师: 设计时间:2016-1-4-2016-...

    java课程设计atm柜员机模拟程序定稿版.docx

    总结: 通过为时一周的课程设计,我受益匪浅,把平时所学的知识通通运用了进来,虽然平时积淀的知识点比较少、比较单一,但是在这次实验中把零零碎碎的知识都连贯起来了,也达到了课程设计的目的,最主要的是通过一...

    Java课程设计报告员工信息管理系统.docx

    JAVA是一个面向对象的程序设计软件,它将重点放在数据和对象的接口上,与C++相比的主要不同在于多继承,在JAVA中,取而代之的是简单的接口,以及JAVA的元类模型。这也很大程度上给我们初学编程的人带来很呆的方便,...

    asp.net知识库

    asp.net的网址重定向方法的比较:面向搜索引擎友好 也谈 ASP.NET 1.1 中 QueryString 的安全获取写法 ASP.NET运行模式:PageHandlerFactory 利用搜索引擎引用来高亮页面关键字 网站首页的自动语言切换 应用系统的多...

    Scala程序设计(第2版)

    8.1 类与对象初步 211 8.2 引用与值类型 213 8.3 价值类 214 8.4 父类 217 8.5 Scala的构造器 217 8.6 类的字段 221 8.6.1 统一访问原则 223 8.6.2 一元方法 224 8.7 验证输入 224 8.8 ...

    Python语言程序设计PPT课件.zip

    面向过程的程序设计方法难以保证程序的安全性和代码的可重用性,而面向对象的程序设计方法能够更好地提高大型程序的质量和开发效率,增强程序的安全性和提高代码的可重用性。学习本章,重在理解面向对象程序设计思想...

    Python语言程序设计习题答案.zip

    面向过程的程序设计方法难以保证程序的安全性和代码的可重用性,而面向对象的程序设计方法能够更好地提高大型程序的质量和开发效率,增强程序的安全性和提高代码的可重用性。学习本章,重在理解面向对象程序设计思想...

    C# Winform数据库应用设计(附开发案例

    与Java一样,C#语言是一个完全的面向对象语言,它继承了C++、Java和 Delphi的优 点,又借鉴了VB的简单易学。体现了当今最新的程序设计技术的功能和精华。C#继承了C 语言的语法风柊,同时又继承了C+的面冋对象特性。不同...

    Python语言程序设计源代码.zip

    使读者在认识物质世界规律的过程中了解计算机的特点、程序设计的特点和人机交互的规律,在认识世界、解释世界和改造世界的实践中掌握Python编程特点、技术和技巧,学会结构化程序设计、面向对象程序设计、人机交互...

Global site tag (gtag.js) - Google Analytics