Java编程思想1、面向对象(object-orentedProgramming,oop)便是这种以计算机作为表达媒体的大趋势中的组成部分;2、所有编程语言都提供抽象机制;3、程序可以添加新类型的对象使自身适用于某特定问题。4、OOP允许根据问题来描述问题,而不是根据运行解决方案的计算机来描述问题。5、万物皆为对象(你可以抽取待求解问题的任何构件{狗、建筑物、服务器等}),将其表示为程序中的对象。6、程序是对象的集合,它们通过发送消息来告诉彼此所要做的。7、每个对象都有自己的由其他对象所构成的存储。8、每个对象都拥有其类型。9、某一特定类型的所有对象都可以接受同样信息。10、Java标识符的选取要“见名知意”且不能与Java关键字同名。11、关键字:Java中用于特定含义,用作专门用途的字符串,且都是小写字母。12、Java常量:用字符串表示,区分不同的数据类型。13、final:值不能再改变的变量14、Java变量:是程序中的最基本的存储单元,其要素包括变量名、变量类型和作用域。15、Java程序中:每一个变量都属于特殊的数据类型,在使用之前必须进行声明,声明格式:typevarName[=value][{,varName[=value]}]16、从本质上讲变量就是内存中的一小块区域,使用变量名来访问这个区域,因此,变量在使用之前必须进行申请(声明)内存中的空间,然后必须进行赋值(填充内容),才能使用。17、没有对变量赋值时,变量的值是默认的值;有些也是不一定的。18、首先在硬盘上有一个小程序文件存在,然后是运行,将自己装载到内存中去(load内存中),然后操作系统会找到你自己的代码的main方法,从main方法开始执行,然后是执行内存的管理,分成4部分,codesegment(代码区:存放代码)、datesegment(静态变量和字符串常量)、stack(栈:存放局部变量)、heap(堆:申请内存用的,new出来的东西都在堆里)、19、堆内存是动态分配内存的,所以在运行的时候才new出来对象;也只有这个时候才知道运行期间这个对象需要多大的内存;20、变量的分类:局部变量(方法或语句块内部定义的变量,必须进行赋值,否则编译器会有出错信息);成员变量(方法外部、类的内部定义的变量此时你可以不给成员变量赋值,系统会进行默认赋值类体之中有用);数据类型:基本数据类型变量;引用数据类型变量。21、boolean类型适于逻辑运算,一种用于流程控制;boolean只允许取值true/false;22、除基本变量以外的都是引用变量;基础类型就是一块内存,引用的是占两块内存;23、类是静态变量放在代码区;24、Unicode是全球语言统一编码;25、定义好了一个类后需要new这个类的对象才能用;26、Java的整型变量默认为int型;27、Java的浮点类型默认为double类型;要声明数字为float类型必须在数字后加f或F;在浮点数是有误差的,要看精度而定。Flaot小数点后的7位;double后的是15位;28、容量小的数据类型自动转换为容量大的数据类型(容量大小表示的是数的大小):byte,short,char-int-long-float-double其中byte,short,char不会相互转换,它们的运算首先会转换成int类型;容量大的数据转换为容量小的数据时,要加上强制转换符,但可能造成精度降低或溢出29、当数据混合运算时,计算机会首先将数据转换为容量大的数据类型,然后进行运算30、Byte最多表示127的int类型的整数,不能超出。31、程序格式:(1)大括号对齐;(2)遇到{缩进,Tab/Shift+Tab;(3)程序块之间加空行;(4)并排语句之间加空格;(5)运算符两侧加空格;一、有特点条件;(6){前有空格;(7)成对编程;32、+可以是算术运算符也是字符串的连接符。33、“+”运算符两侧只要有一个是字符串类型,系统会自动将另一个数据类型转换为字符串类型然后进行连接。34、intc=12;System.out.println(“c=”+c);在打印时无论是什么类型,首先转换成字符串类型进行连接;35、表达式:一个符合语法规则的运算符和操作符的序列36、只有for里面的不需要空格37、break语句用于终止某个语句块的执行,用在循环语句体中,可以强行推出循环;continue语句用于终止某次循环体,执行下一次没有执行的循环体;38、java中的switch()括号中只能识别int的值;括号中可以是char、byte、short可以转化的类型39、方法必须首先定义,然后才能调用;40、return语句是终止方法同时指定返回一个数据类型;41、if、switch语句分支;for、do、、、while/while循环语句42、面向对象的设计思想:从现实世界中客观存在的事物出发来构造软件系统,并在系统的构造中运用人类的思维方式。43、对象用计算机语言对问题域中事物的描述,对象通过属性和方法分别对应事物所具有的静态属性和动态属性。44、类:是用于描述同一类型的对象的抽象的概念,类中定义了这一对象所因具有的静态和动态属性;45、类:可以看成某一类对象的模版,对象可以看成类的一个具体的实例。46、静态属性:就是应该有什么东西;47、动态属性:这个对象能干什么;48、一个类的方法里面是另一个类的某一个对象,我的方法的参数是你这个类的对象;49、每一个对象都有自己的属性,属性的值是和其他的对象的是不同的,这就可以区别不同的对象了;50、XX是一种XX,这种叫继承关系;51、一个类完全可以从多个不同的类继承;52、谁谁是谁的一部分,这就是一种聚合的关系;分的更加细致的话呢,就是叫聚集和组合(就是我是你的必不可少的一部分);53、实现关系:就是不同的对象有自己的实现的方法(父类和子类之间)54、面向对象:(1)有哪些个类和哪些个对象;(2)每种类和每种对象应该具有哪些个属性和方法;(3)类个类之间具备了什么样的关系;55、对象是java程序的核心,在java中“万事万物皆为对象”,首先定义类才能有对象、首先定义方法才能调用;56、对象:可以看成静态属性(成员变量)和动态属性(方法)的封装体57、类是用来创造同一类型的对象的“模版”,在一个类中定义了该类中对象的所因具有的成员变量和方法;58、J2SDK提供了很多类给程序员使用,程序员也可以自己来定义类59、成员变量的书写:首先是修饰符,然后是变量的类型,再是变量的名字;60、成员变量可以初始化如果没有初始化那么Java会自动默认的给其一个初始化的值;61、成员变量的作用域是整个类体;62、Java语言中除基本类型以外的变量类型都称之为引用类型;Java中的对象是通过引用对其进行操作的;63、对象是new出来的,new出类的某一个对象;位于堆内存,类的每个成员变量在不同的对象中都会有不同的值(除了静态变量)而方法只有一份,执行的时候才占用内存;64、合适的方法出现在合适的类里;65、构造方法和类的名字完全一样,没有返回值,和new一起使用,new是new出来一个新对象,new调用的是构造方法;66、构建一个新对象时用的方法,叫构造方法;67、Person(int_id,int_age){}构造函数;写下横线是为了与我们的成员变量区别开;68、类名的首字母大写;变量名和方法名的首字母小写;运用驼峰(后面的单词的首字母都应该大写)标识;69、基础类型就占一块内存,引用变量占用两块内存;70、方法调用完毕之后为这个方法分配的所有的局部变量自动消失71、没有任何一个引用指向它的时候垃圾回收器就可以收集了;72、方法重载是指一个类中可以定义相同的名字,但参数不同(参数的个数或参数的类型)的多个方法;73、构造方法也能构成重载;74、对象的创建:(1)必须使用new关键字创建对象;(2)使用对象引用.成员变量或来引用对象的成员变量;(3)使用对象引用.方法(参数列表)来调用对象的方法;(4)同一类的每个对象有不同的成员变量存储空间;(5)同一类的每个对象共享类的方法(非静态方法是针对每个对象进行调用)75、方法的名字,方法的参数,方法的返回值;76、在类的方法定义中使用的this关键字代表使用该方法的引用;this指向这个对象自己;必须指出当前使用方法的对象是谁时要使用this关键字;有时使用this可以处理方法中成员变量和方法重名的情况(就近声明的原则);this可以看成一个变量,它的值是当前对象的引用;77、“引用”加“.”肯定是成员变量;78、用static声明的成员变量为静态成员变量,它为该类的公用变量,在第一次使用时初始化,对于该类的所有变量来说,static变量只有一份;79、用static变量声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static方法中不可以访问非static成员;80、静态的方法不能够去访问非静态的成员;非静态成员专属于某一个对象,想访问某一个非静态成员必须先new一个对象出来;81、package:为便于解决大型软件系统中数目众多的类,解决命名冲突的问题,Java引入了包(package)机制;提供类的多重类命名空间。82、package作为Java源程序的第一条语句,指明该文件中定义的类所在的包;83、Java编译器把包对应与文件系统的目录管理,Package语句中,用‘.’来指明包的层次;84、编译的类必须位于正确的目录(和包的层次完全一致)下面;//我可以直接把文件名命名成我要访问的类的名字吗?85、Import语句可以引用包里的类;否则必须在要引用的类前加上所在的文件的地址;86、另外的类如果想要引用的话:(1)把类的名字写全了;引用——*或具体类名;访问同一个包中的类不需要引用;87、必须Class文件的最上层包的父目录位于classpath下88、在执行的时候也要把包名写全了;执行一个类需要写全包名;89、J2SDK主要的包介绍介绍:Java.lang(这个里面的类里是不需要引用的,可以直接使用)—包含Java语言的核心类,如String,Math,Integer,System,Thread;还有Java.awt-包含了抽象窗口的工具集的多个类,这些类被用来构建和管理运用程序的图形用户界面(GUI);还有Java.apple—包含apple运行所需要的一些类;另外还有Java.net—包含执行与网络相关的操作的类;Java.io—包含能提供多种输入/输出功能的类;Java.util—包含一些实用工具类,如定义系统特性、使用与日期日历的函数;90、炸包:在命令提示符里写jar(但敲一个jar)然后是jar-cvf后面写上我们要生成的那个炸包的名字然后是指定把哪些东西打包到这个jar里面然后是*.*(把当前这个目录下面所有的子目录和里面的东西文件全部包到我们的jar里面)然后回车;91、类的继承:Java中使用extends关键字实现类的继承机制;通过继承,子类自动拥有了基类(父类)的所有成员(成员变量和方法)。Java只保持单继承,不允许多继承;一个子类只能有一个基类(父类),而一个基类却可以派生出多个子类;92、访问控制:修饰符类内部同一个包子类任何地方Private(个人的、私人的)在自己的方法中访问Yesdefault(同一个包下)YesYesProtected(受保护的)YesYesYespublicyesYesYesYesPublic、Protected、private置于类的定义前,用来限定其他对象对该类对象成员的访问权限。93、对于Class的访问权限修饰只用public和default;94、public可以任何地方被访问95、default类只可以被同一个包内部的类访问;96、可以修饰成员变量和Class类97、方法的重写:在子类中可以根据需要对从基类继承来的方法进行重写;重写方法必须和被重写的方法具有相同的方法名称、参数列表和返回类型;重写方法不能使用比被重写方法更严格的访问权限;98、