文档库 最新最全的文档下载
当前位置:文档库 › java基础知识笔记

java基础知识笔记

一 java概念
1. 程序:为完成某些事务的一种既定方式和过程;
2. java 是Sun Microsystems于1995年推出的高级编程语言,其领域有SE/EE/ME,与Visualc#和.NET平分天下的应用
软件开发平台和技术;
3. javaSE:Java platform,Standard Edition
JavaEE: Java platform,Enterprise
javaME: Java Platform,Micro Eidition
JavaSE主要用于桌面程序,控制台开发,是java学习的基础体系;
JavaEE企业级开发(网站开发和基于b/s模式的编程)
JavaME嵌入式开发,主要用于手机和小家电的设计与开发;
二 java程序
1. java开发工具:MyEclipse
2. java的编译程序:JDK=java
3. class与其它编程语言的区别
a. class文件径打破了c或者c++等语言新遵循的传统,使用这些传统语言写的程序通常
首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件
b. 通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作,而java class
文件是可以运行在任何支持java 虚拟机的硬件平台和操作系统上的二进制文件。
三 java程序编写
1. public/class/static(静态的)/void(无返回类型)/main/string(字符串)/args(参数)/System/out/print
2. 用记事本编写JAVA程序:新建.java文件,然后编写 java 编程框架
public class 文件名{
public static void (string[]args){
编写代码……
}

3. java文件及路径必须与环境变量中的变量值一致,否则编译不成功。如abc.java在D盘aaa文件里,则变量值为d:\aaa;
4. java的运行环境: 下载JDK后,设置系统变量PATH,关键是要在系统变量设置项新建“path_home”及“classpath”
path_home:是指下载JDK的bin地址,结尾可不带分号
classpath:是指class编译文件的地址,唯一的地址,可添加多个地址信息;一般不设地址则默认为盘的根目录,即第一级目录。
path:必须添加JDK的安装地址,而path_home可有可无,不影响编译程序,但classpath是必须要设置变量值。
如:文件aaa.java生成文件aaa.class同时在D盘根目录下,则path_home的变量值是JDK下载地址;classpath的变量值为“.;”
如:文件aaa.java生成文件aaa.class同时在D盘***文件夹下,则path_homer变量值为JDK下载地址;classpath的变量值为“D:\***”
如:文件aaa.java生成文件aaa.class同时在D盘***文件夹下,则path_homer变量值为JDK下载地址;classpath的变量值为“D:\***”
文件aaa.java生成文件aaa.class同时在D盘**文件夹下,则path_home的变量值是JDK下载地址;classpath的变量值为“D:\**”
即classpath的变量值可以设置为“D:\***;D:\**;” 由此得知,classpath的变量值可以添加多个地址信息。
注:classpath--D:\java学习;D:\jav

a练习;path--;C:\Program Files (x86)\Java\jdk1.7.0_01\bin;path_home--;C:\Program Files (x86)\Java\jdk1.7.0_01\bin;
四 java的四种字符类型及运算符运用
1. char/string/int/double
2. "+":两个非数值则表示为连接符;数值和非数值则表示为连接符,两个数值符则表示为运算符
"%":求余数。
3. 赋值运算符就是将右边的值赋值给左边,但必须是同类型的字符型才成立。
4. 题目001:某班的A学员Java 成绩是80分,B学员与A学员成绩相同,输出B学员成绩 (如笔记中MP3.java文件)
5. 题目002:某学员3门课成绩为STB得分89,java得分90,sql得分60,求
(1)java课和sql课的分数之差 (2)3门课的平均分 (如笔记中的timu002.java文件)
6. 题目003:根据天数(46)计算周期和剩余天数 (如题目中的timu003.java文件)
五 java 数据类型的相互转换
1. string/char:非数值类型;int/double: 数值类型
double>int;string>char (如笔记中lie001.java文件)
2. 数据类型的强制转换
题目004:去年Apple笔记本所占的市场份额是20,今年增长的市场份额是9.8,求今年所占的份额?(如笔记中的timu004.java文件)
3. 数据的输入,利用扫描仪Scanner进行数据输入 (如笔记中lie002.java文件)

第三章 运算符与条件结构

一 数字交换
1. 题目005:int a=45;int b=78=>int a=78;int b=45;(如笔记中timu005.java文件)
二 boolean类型
1. boolean类型用来存储布尔类型:true/false;如 boolean A=true/false
2. 关系运算符的作用:用来作比较运算,比较后结果为boolean类型
例:大象的寿命>乌龟的寿命(真);篮球的大小==地球的大小(假);
3. 关系运算符: >/=/<=/--(恒等于);(如笔记中的lie003.java文件)
三 if 条件结构
1. if条件结构是根据条件判断后再做处理;
2. if基本结构:if(条件式){}(如笔记中lie004.java 文件)
逻辑运算符
1. 复习前面的内容,如笔记中lie005.java文件;
2. 逻辑运算符,就是将多个条件连接起来;&&:并且,指条件1&&条件2同时满足;||:为满足其中一个便 成立;!:指条件为真是结果为假,条件为假时结果为真;(如笔记中lie006.java文件)
3. 运算符的优先级,判断优先级的方法为:取反为逻辑运算符,只能对布尔boolean类型的数据进行操作;
if_eles条件结构
1. 基本结构:if(){}else{}.如笔记中lie007.java文件
2. 多重if结构:if(){}else if(){}…… 如笔记中lie008.java文件
3. 多重if结构嵌套类型,如笔记中lie009.java文件
4. switch多分支结构:
demo: 令狐冲参加比武大会,如果获得第一名,将出任武林盟主;如果获得第二名将出任武当掌门;如果获得第三名,将出任峨嵋掌门;否则,将被逐

出师门。
如笔记中lie010.java文件if的使用方法,以及liek011.java文件swith的使用方法。
注意:switch后的()只支持int类型和字符类型;mc从demo中的case *变量依次读取,直至出现break后跳出switch语句,如lie012.java文件。
switch接字符类型时,如lie013.java文件所示
1-3总结:
1. 数据类型有
char 字符型 如 char a='男';
int 整数型 如 int a=10;int b=input.nextInt();
double 双精度浮点型 如 double a=5.9;double b=input.nextDouble();
String 字符串类型 如 String a="小样";String b=input.next();
boolean 布尔值类型 如 true or false;boolean a=true;boolean b=input.nextBoolean;
Scanner 扫描仪 Scanner input=new Scanner(System.in);
2. 运算符有
赋值运算符 = 最后运算,把右边的值放入到左边的变量去。
算术运算符 =-*/
关系运算符 < > <= >= == !=
逻辑运算符 && || ! !>&&>||
优先级顺序: 赋值运算符》算术运算符》关系运算符》逻辑运算符
3. 语法结构有
条件语法结构:if;if(){}else();if(){}else if(){};……
分支结构: switch(){case N:xxx;break;……; default:xxx;break;
if与switch的区别,if 必须为boolean类型;switch必须为int/char类型;
4. 小项目实践
(1) 求偶数 要求用户输入一个整数,如果是偶数就输出“它是一个偶数”,否则就
输出“它是一个奇数”。(什么上偶数?就是能被2整除的就是偶数)
分析:整数是从0,1,2,3,4,5,6,……的数字,偶数是能被2整除的数,
其特点是余数为0,即表达式的结果是余数恒为0,由此得出表达式为"*%2==0";
另外,题目要求用户输入一个整数,这个整数的结果可能是偶数,也可能是奇数,
意味着这是一个if的条件表达式,即不是偶数,便是奇数,综合分析,此题目为
if的条件结构表达式
操作步骤如下:先抢建一个java框架,再引入Scanner,然后用if进行判断
如timu0061.java文件所示;
(2) 判断年份 要求用户输入一个年份,然后告诉用户这是瑞年还是平年
(什么是瑞年?就是能被4整除且不能被100整除,或者是能被400整除的年份为瑞年。)
分析:年份%4==0&&年份%100!=0||年份%400==0,这是判断年份的条件
操作步骤如下:如timu0062.java文件所示。
(3)取随机数 导入Random表达式 import java.util.Random;如lie014.java文件
取随机数 直接生成法 Math.random 如文件lie0015文件(//这里不能强制转换int类型,却不知道什么原因)
5. 猜拳游戏的设计
设计思路:(1)先搭建java框架,导入Scanner;
(2) 输出语句及给变量赋值 如timu0071.java文件;
(3)猜拳的结果,只有“赢”“输”“平”三

种情况,则用户与电脑之间的关系有
A. person==computer(平局)
B. person==1&&computer==2||person==2&&computer==3||person==3&&computer==1(person输了,computer赢了)
C. computer==1&&person==2||computer==2&&person==3||computer==3&&person==1(person赢了,computer输了)
如文件timu0072.java所示
(4)显示效果“你出的是xx,电脑出的是xx,结果是xx”,这样的结果是怎么运行的呢?
如 当person==xx时,电脑显示的 只是数字代号,而代号要变成对应的结果,并不是在输出语句中输入“xx”
而是引入一个标记Marks,将标记的值赋予给person或者computer.然而Marks标记值是“剪刀”“石头”“布”这样的
的字符串类型,表达式则为string类型,即引入一个标记:String Marks="初始值";接着用switch表达式定义Marks
switch(person/computer){case 1:;Marks="xx";break;……;} 如文件timu0073.java


第四章 循环结构

一 循环
(1). 定义:
(2). 特点:必须具备循环条件和循环操作。
1.运算符的分类
一元运算符:i++;<=> i+=1;//先使用后对自身加1,如 int i=1;int b=i++;b=1 i=2
++i;<=> i+=1 <=> i=i+1;//先对自身加1后使用 如 int r=1;int b=++r; b=2 r=2
i--;//意思是跟i++类似
--i;//意思是跟++i类似
在java中,a++ 和 ++a的相同点都是给a+1,不同点是a++是先参加程序的运行再+1,而++a则是先+1再参加程序的运行。
一般来说他们的区别在于混合表达式中运算符的处理顺序。
a++是先处理其他运算,然后a再自加;而++a则是先处理a自加运算,再处理其他表达式运算;
如果只是单纯的表达式a++;或者是++a;这两个表达式的结果就没什么区别。
++a = 22;里面先++a,返回的东西是 a, 而a是一个变量,显然是一个是一个左值,他可被程序寻址,可以改变它的值
a++呢?a++是什么东西?a++是一个引用了临时对象的表达式,用户不能寻址该对象,也不能改变它的值,所以它是右值,不是左值
a+5也是一个引用了临时对象的表达式,用户不能寻址该对象,也不能改变它的值,所以它是右值,不是左值
a=6显然是左值,就不用说了

二元运算符:(+ - * / %)
三元运算符: if(a>100){c=200;}else{c=500;}<=>//等价于
int a=200;int c=a>100?200:`500;c=200
2. while循环结构语句,如lie016.java文件
3. 累加求和
循环的三要素:循环变量初始化;循环的判断条件;循环体中改变的循环变量的值;
循环的语法结构: int i=0;循环变量初始化;
while(){循环判断条件输出}
循环使用情况:重复执行的代码;相近或相似的代码,其中变化的地方是有规律的
循环使用方法:找循环结束的地方,如 int i=1;while(i<100){结束条件}
找循环变量的

初始值;找循环变量改变的规律;
题目:1+2+3+4+5+……+100=? 如笔记中timu008.java文件
分析:有规律的循环操作,须引入一个sum,即求和为sum+i;

题目: 录入班级人数和学员成绩,并计算班级学员的平均成绩 如笔记中timu009.java文件所示;
分析: 循环条件是--目前录入学员人数及成绩,且录入的成绩数目小于总人数;
循环操作是--录入学生成绩,并累加求和;
重点: 在while循环语句中的变量是局部变量,如果要循环操作,则必须在while循环语句结构外声明
一个变量,目的是直到循环使用。如while(){int sum=sum+a;},变量sum只在内部起作用;
而int sum=0;while(){sum=sum+a;}这样就可以使sum循环使用;

4. while的使用技巧:循环条件的变量值如果没有定义就会变成死循环,须要在循环条件中改变变量的值
如:while(i<10){……;i++;},而i++才是改变变量i值的关键。
5. 题目:2006年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?
操作:如笔记timu010.java文件所示;
分析:目的是求年份,而条件是达到20万人,根据题目提示,这是一个有规律的循环条件;
步骤:(1)搭建java的框架,输入题目提供的信息;
(2) 声明一个变量year为所求的年份,已知初始年份为2006;
再声明一个变量i为人数,而已知初始人数为8万;
(3) 变量year的表达式为:while(i<200000){i=i+(i/100*25);year++;}
注意:year++指每一年的人数,而每一年的人数由变量i决定,只有当i<200000时,year才能显示出来;
6. do-while循环结构:do{循环操作}while(循环条件);是先执行再作判官的过程;
而while循环语句的特征是:先判断再执行。
7. do-while循环结构语句的使用:如笔记lie017.java文件所示;
注意:给变量定义时,要使用循环必须在do-while语句结构外声明并赋予一个初始值int a;而在do-while语句结构中则表示为a=in.nextInt();
另外,do-while与while在使用的区别是,while先判断时给的变量必须要赋予一个初始值,而在do-while中可以不赋予一个初始值。
二 MyEclipse
1. 程序调试:当程序出错时,需要逐条语句执行程序=>观察程序执行情况=>发现问题=>解决问题=>测试并完成
步骤:设置断点--程序暂停执行的代码行;如lie018002.java文件;
单步运行
目的:找出缺陷,修正缺陷;
主要方法: 设置断点,单步执行,观察变量,
过程:即步骤
1. for循环语句结构:for(初始化参数;判断条件;更新循环变量){循环操作;}
for与while的语句特征是相似的,但for语句使用更简捷、方便。
题目:循环输入某同学的考试的5门成

绩,并计算平均分
操作:如笔记中timu011001.java文件所示
分析:确定循环条件和循环步骤;
套用for语法写出代码;
检查循环是否能够退出
2. for:在已知循环次数时使用for循环比较方便 for(表达式:参数初始化;条件判断;更新循环变量){}
while: 在不知道循环次数的情况下使用 while(表达式:循环初始变量){循环条件 }
如文件:D:\360Downloads\Software\myEclipse\lie018001\bin\timu011001.java
3. for循环加法表,如文件:D:\360Downloads\Software\myEclipse\lie018001\bin\timu011002.java
4. for循环常见问题案例:
(1)for(;i<10;i++)/*没有声明初始条件*/{}=>for(int=0;i<10;i++){]
(2) for(int i=0;;i++)/*循环变量的值没有变化,造成死循环*/{System.out.println("这是"+i);}
=>for(int i=0;i<10;i++){System.out.println("这是"+i);}
(3) for(int i=0;i<10)/*循环变量的值没有变化,造成死循环*/{System.out.println("这是"+i);}
=>for(int i=0;i<10){System.out.println("这是"+i);i++);
(4)for(;;)/*表达式全省略,无条件判断,循环变量无改变,应在循环体内设法结束循环;否则会造成死循环*/{System.out.println("这是测试")}
=>break在swith语句中的使用方法可以结束死循环,如文件lie019.java
5. continue语句:路过循环语句中剩余的语句而执行下一次循环
如:while(……){……continue……}=》如笔记中文件lie020.java
while(int i=0;i<10;i++){跑400米;if(!口渴){continue;//不喝水就继续跑}接过水壶,喝水;}
注:break与continue的区别
(1)使用场合:break可用于switch结构和循环结构中,而continue只能用于循环结构中
(2)作用(循环结构中的作用)
break语句终止某个循环,程序跳转到循环块外的下一条语句。
continue跳出本次循环,进入下一次循环
6.循环嵌套:while/do-while/for是循环结构语句,另外还有一种多重循环结构,即循环嵌套;
如:lie021.java所示

7.题目:制作九九乘法表
操作:文件timu012.java
分析:使用循环嵌套语句
8.题目:日历的制作
(1)先算天数,比如:求1900年到2015年的天数,文件timu013.java所示
分析:年的天数有瑞年366天和平年365天,那只有判定哪些年份是瑞年,哪些年份是平年,然后将瑞年的天数加上平年的天数就是总的天数
而瑞年的判定语句是:year%4==0&&year%!=0||year%400==0;相反则是平年
(2)求1900年到2016年5月7日有多少天?文件题目timu014.java所示
分析:首先要知道哪些是瑞年,还些是平年;其次是要知道月份的天数,而月份的天数分为2月及
(3) 求1900年到2012年9月1日有多少天?最后一天是星期几?文件题目timu015.java所示
分析:先求得总的天数,然后取总天数的模,

所得的模是几就是星期几。如文件题目timu016.java所示
(4)求2012年9月的日历 如文件timu017.java所示。
分析:当输出了星期的排列情况后,只要算sum%7的值就行,而求sumr值则需要知道一定时间内的sum值,
如从1900年到2012年9月1日算出有多少天后往后加1,即sum+=i;
五 数组
1. jvm :java虚拟机,
栈区:存放参数、变量的值,存储基础类型。编译时会自动生成
堆区:存放new创建的对象和数组,运行时会自动的分配jvm的内存,如果没有new这个对象就会回收
2. 数组:(1)掌握基本用法。(2)掌握一维数组和二维数组,并学会会求平均值、最小值和最大值 、以及排序等问题
3. 数组的四个步骤:
声明数组: int[] a ;
分配空间: a = new int[num] ;
赋值: a [0] = 9 ;
处理数据: a[0] = a[0] * 10 ;
4. 数组的声明: 有两种方式 数据类型【】 数组名、数据类型 数组名【】
分配空间:数组名 = new int[num];
赋值: 同时声明并赋值,数组的下标超越了边界时会出错
5. 数组的存储原理:
(1)在java的数据类型中,同一数组中只能存储同一类型的数据,而方法有三种
常用的方式有:int[] arr = { a,b,c……}
(2)数组内存的表示方法: 在栈内存中声明并创建一个变量名 int[] arr 在堆内存则要声明并赋值,如果没有赋值将会默认初始值为0
6.题目: 用数组计算学生的平均分 如timushuzu01.java文件,这是用户输入数据时能自动求平均值 ,这是动态 的操作
7. 数组中lengh的属性: 用来查看数组的长度,主要是在数组成员变动的情况下用,结果返回的是一个int类型的数值 如文件shuzu03.java
8. 求数组的最大值:
常见错误:(1)int[] arr = new int[]//[要设置数组的数量]
()arr = {a,b,c……};//边声明边赋值,须要次完成语句,如: int[] arr = {a,b,c,……};
9. 题目: 用键盘输入5名学生的成绩,并求学生中的最大值,如文件,timushuzu02.java
10. 题目: 循环输入5名学员的成绩,然后对成绩进行升序排列并得出最小值
分析: 先导入Arrays类,即java.util.Arrays; 如文件 timushuzu03.java
步骤:先循环输入学员的成绩并存储;然后导入Arrays.sort的方法将输入的数据从小到大排序。
11. 题目: 有一列乱序的字符,‘a’,'b','c'……等, 将字母按照英文字母表的逆序方法输出。
分析: 逆序是从z-a的排序;
12. 数组的算法有:(1)数组的复制(2)查找算法-搜索(3)插入算法(4)冒泡排序(5)选择排序
数组的复制方法:如lie023.java文件。将一个已经赋值的数组复制给没有赋值的数组。
数组的查找方法:就是搜索,用于系统搜索对象。lie

022.java文件
数组的插入算法:就是在最大的数标下插入数值。如文件lie.024.java文件。将数值进行比较,一个一个去比较,如果遇到满足条件的就停止。
数组的冒泡排序:是一个数组算法中最基本的算法,用sort排序算法以,如lie025.java文件。
每一次for循环只能确定一个最大的值,有n个数时,要(n-1)个for循环,但这样比较麻烦,而用sort的排序会更简单,或者用for嵌套循环
选择排序算法:比冒泡排序算法更方便,实用。
冒泡排序原理是将两个相邻下标的大小比较;
选择排序原理是将一个数依次与其他数去比较。
13. 题目: timu019.java
14. 多维数组:
一维数组是存储一个具体的值;只要访问其下标就行
二维数组是存储一个数组,访问数值方法是先访问具体的数组,再从数组中访问数值
三维数组是存储一个嵌套数组,就是数组中存储数组1,数组1中存储数组2
四维数组……依上类推。如文件lie028.java
15. 题目: 声明一个一维数组,这个数组为3行2列,现在要循环输入6名学生的姓名,并输出打印出来。
分析: 数组的特点是,数组的每一个下标数都是从0开始的,如文件timu020.java所示
步骤: 先循环录入学生姓名,就需要用一个循环的语句;然后将录入的姓名分别存储在数组中,分3个数组,每个数组存储2个姓名;
最后的效果是,当输入完最后一名学生的姓名后就自动显示已经输入的6名学生的姓名。
16. 题目: 输入班级学生的姓名

lunxuu1@
506894555@https://www.wendangku.net/doc/fd4382403.html,
陈磊:159********
qq:1065211001
wx:cl_l9870802

第六章 面向对象和类

一总结复习1-5章的知识
1. java的基础语法:
while循环和for循环、if的判断选择语句
java的数组:一维数组、二维数组、三维数组
2. 常见的问题:
(1)java不 是内部或外部命令,这是有关于JDK安装的问题,如果JDK安装正确的话就是环境变量设置是否正确。
方法是:直接在DOS中输入PATH.
(2)在做日历的程序过程中出现的一些问题
判断某个月的天数:先申明一个变量days,然后再判断这个月是平月还是润月,
二 程序的执行过程
1. java文件要执行时,是先编译成.class文件。而.exe是直接在程序里运行,而.class文件是在jre中运行。
2. 操作系统的一系列代码也是在内存里,在内存里有一个叫局部变量的存储块,如文件lie030.java文件所示
3. 认识面向对象和面向过程
如:要去北京 ,那司机师傅就会带你去北京,这是一个面向对象思想,只要完成结果
而面向过程的话就是将北京的过程详细的记录下来。
4.对象:是一个具体的事物,可以看的见摸的着的物事
而类是一个抽象的概念

如:女娲要造人,用什么造呢?(方法:类)用泥巴造人,那泥巴就是产生的这个对象的类,要造什么呢?(造出来的就是:类的对象)当然是人,要什么人呢?(不同的对象)士兵、将军、皇帝等属于类的对象
之前学过Arry数组、Scanner、Random这三个类
三 创建一个类
1. 如文件lie032.java 创建类的命名规则,首字母要大写;类必须要有属性和方法,变量名的首个单词的每一个字母要小写或者都 是小写
2. 面向对象与内存解析:
(1)必须使用new关键字创建一个对象;
(2)使用对象属性(对象名.成员变量);
(3)使用对象方法(对象名.方法名);
(4)同一个类的每个对象有不同的成员变量的存储空间;
(5)同一个类的每一个对象该类的方法
3. 代码在内存中的运行情况(lie033_1.java无参无返回):定义 一个类型(Person.java)后就可以定义一个局部变量(lie031.java),创建一个new,然后将new的值赋值给变量(Person One = new Person();)最后 输出打印这个变量的属性。
4. 有参无返回的调用 (lie034.java):参数定义在括号中,根据需要而定
5. 有参无返回的调用 (lie034_1.java):参数定义在括号中,根据需要而定
四 封装:
1. 成员变量的定义:如文件lie035_1.java所示
2. return和多参方法:将类和子程序都写在一个记事本内,return方法指定类型的返回值
(1)返回一个参数的值(2)结束方法的结束
String为类型,可以定义多个参数,以逗号隔开,如String n,int a,char b……
3. toString方法:
哈希马值:是指内存地址。
4. this 关键字:
第二个对象引用two,放在栈内存;调用one对象的方法set,引用了方法中的属性参数,
而属性对象name\age\color在堆内存中;one这穿上对象的引用可以等于this.这个成员属性变量。lie037_1.java
所示输出对象时返回了对象的参数属性值
5. 封装:encapsulation,就是把不想或者不访告诉别人的东西隐藏起来,把可以告诉别人的东西公开来;
做法:修改属性的访问权限来限制对属性的访问,并为每一个属性创建一个取值方法和赋值方法,用于对这些属性的访问。lie037_2.java
6. 方法重载:指在一个类中定义有相同的名字,但参数 不同的多个方法,调用 时会根据不同的参数列表选择相应的 方法。如lie038.java文件
7. 构造函数(方法):使用new加上构造方法是创建一个对象的。lie039.java
8. 阶段性总结:java的发展历程及开发环境,java的基础程序设计,java的特性,java面向对象的设计语言
(1)java声明数组:就是数组的数组
(2)面向对象与面向思想的区别:
面向过程思想:强调的是功能和行为

,如将啤酒放到冰箱
面向对象思想:功能封装进对象,强调具备功能的对象
类:对现实生活中事物 的描述,如什么是太阳,什么是月亮,什么是狗等,都是在描述事物的属性和行为;类就是具备属性和行为,
对象:就是这类事物,实实在在的个体
为什么要创建类:根据需要,以后的开发其实就是在找对象,没有就要创建一个对象
对象:必须具备属性和行为
面向对象的特点:找对象,建立对象,使用对象,维护对象的关系

面向对象内存分析:
Cat c = new Cat();
代码第一步就是创建一个对象c
new:new出来的东西是放在堆内存里,而new出来的就是c(猫),局部变量是放在栈里面的
访问的对象:在堆内存中复制一个内存地址来访问对象给栈内存的C
(3)面向对象 的成员属性:类中的每一个对象都共享类的方法
(4)类的方法种类:有四种,根据需求定义属性和方法
无参无返回:public void get(){}
无参有返回:public int get(){}
有参无返回:public voidget(String A){}
有参有返回:public String get(int a){}
(5)关键字:
return语句返回
this:指当前对象
private:访问权限,修饰符,用于隐藏对象
toString:每个类的一个默认的方法,用于把类以字符串显示;
(6)方法的重载:
(7)构造方法:名称必须与类同名且没有返回值;
9. 学习方法的指引:
(1)基本功:多背程序,体现在多敲代码、多写(用笔在本子上写)代码
(2)每天坚持学习:有规律的复习及积累一些问题和方法,如常帮别人解决问题以强化自身的知识
(3)多看一些有用的书籍,如java编程思想(《think in java》)
(4)多做一些小的项目,如日历等;多交流,这样有益于扩展思维及加强知识面。
10 项目:
(1). 约定俗称的命名的规则
(1). 类名首字母必须大写
(2). 方法和属性必须小写
(2). 由多个单词组成的类名或方法必须采用驼峰式标识。如 类名 StudentAdmin 方法或属性 studentName
(2). 项目介绍:
五 项目的制作 如题目022_*.java文件
分析:首先要找到面向对象的思想,完成这个项目不能再用以前的方法那样将字符连接起来,
在项目中把一个学生当一个对象,有多少学生就那多少对象,而sum并没有提供Student这个类,所心需要建一个Strdent的类。用MyEclipes软件

六 构造代码块
特点:对象 一旦建立 就公优先于构造函数
作用:缘分对象 进行初始化
构造代码与构造方法的区别:(1)构造方法是给对应的对象进行初始化(2)给所有 的对象进行统一的初始化

七 面向对象思想
面向对象(Object Oriented,OO)是软件开发方法。面向对象的概念

和应用已超越了程序设计和软件开发,
扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术[1] 发展到一定阶段后的产物。
1. 早期发展
随着计算机技术的不断提高,计算机被用于解决越来越复杂的问题。一切事物皆对象,通过面向对象的方式,将现实世界的事物抽象成对象,现实世界中的关系抽象成类、继承,帮助人们实现对现实世界的抽象与数字建模。
通过面向对象的方法,更利于用人理解的方式对复杂系统进行分析、设计与编程。同时,面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统。面向对象是指一种程序设计范型,同时也是一种程序开发的方法。
对象指的是类的集合。它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性、灵活性和扩展性
早期的“面向对象”是专指在程序设计中采用封装、继承、多态等设计方法。
面向对象的思想已经涉及到软件开发的各个方面。如,面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)、以及我们经常说的面向对象的编程实现(OOP,Object Oriented Programming)。[2]
面向对象的分析根据抽象关键的问题域来分解系统。面向对象的设计是一种提供符号设计系统的面向对象的实现过程,它用非常接近实际领域术语的方法把系统构造成“现实世界”的对象。面向对象程序设计可以看作一种在程序中包含各种独立而又互相调用的对象的思想,这与传统的思想刚好相反:传统的程序设计主张将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。
面向对象程序设计中的每一个对象都应该能够接受数据、处理数据并将数据传达给其它对象,因此它们都可以被看作一个小型的“机器”,即对象。[2]

2. //static 作用
//用来修饰成员变量或成员方法,被修饰的成员变量或成员方法
//有且只有一份,即所有对象都共享
//除了可以被对象调用之外,还可以被类名直接调用(类名.静态成员)
//特点:随着类的加载而被加载;优先于对象而存在;所有对象都共享;可以被类名所调用
//被static修饰的成员也叫类变量或静态变量,不被修饰的成员叫实例变量
//static的生命周期是随着类的存在而存在,类消失也就不存在了。
//什么时候使用静态变量或静态方法:
//当属于同一个类的所有对象出现其享数据时,成员变量就可以用Static修饰。
//当

功能内部没有访问非静态成员(对象特有的数据)时那么该功能可以定义为静态
如 StaticTest 文件
3.main方法,也叫主函数

八 接口
1. 概念:是一个特殊 的抽象类,当抽象中全部是抽象方法时,可以通过接口的形式来体
2. 关键字: interface
3. 接口的成员常量格式:public static final String NAME = "小李" ;这是全局常量;
4. 接口的成员方法格式: public abstract void show();这是抽象方法;
5. 接口的默认修饰符: public
6. 接口是抽象类,因为里面有抽象方法,需要被子类调用,不可以创建对象 static final

intface smoket{
public static final String NAME = "小李" ;
public abstract void show();
}
class Student implements smokey{
public void show(){
System.out.println("werg");
}
}
public class jikouTest{
public static void main(String[] args){
Student s = new Student();
s.show();
}
}

















相关文档