JAVA 面向对象编程大纲

本文全面介绍了Java编程的基础知识,包括环境配置、基本语法、数据类型、类与对象的概念、方法、变量、修饰符、运算符、控制结构、继承、多态、抽象类、接口、异常处理等内容,适合初学者快速掌握Java编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

												JDK环境变量的配置

在Windows系统下配置环境变量:1 首先下载java开发工具包 2 最好是下载JDK1.8版本的,因为我们在
开发过程中会选择最稳定的版本而不是最新的版本 3 安装下载的JDK程序

											JKD的安装
					1 右击我的电脑,选择属性,选择的高级系统设置,点击环境变量
					2  在Path里面把我们安装的JDK安装路径添加进去
					3  按windos加R键输入cmd,在doc命令窗口里输入javac命令,验证环境变量是否配置成功

											java基本语法
					1  对象:对象是类的一个实例,有状态和行为.例如一条狗是一个对象,它的属性有:颜色,大小,名字,品种
					它的行为有:跑,叫,吃饭,睡觉等
					2  类:类是一类对象的模板,我们把多个对象中的相似属性与行为抽象出来,放在一个集合中这个集合就叫做类
					3 方法:方法也叫做行为,一个类可以有多种方法,逻辑运算,数据修改及其所有动作都是在方法中完成的
					4 实例变量:每个对象都有独特的实例变量,对象的属性由这些实例变量的值决定

											第一个java程序
					public class Dog{
						public static void main(String [] args){
							System.out.println("这是一只狗");

}

}
使用notepad++ 将上面这段代码写下,然后使用doc命名将上面的java原文件编译成class文件 然后进入当前class文件下的路径,使用javac空格 原文件类名+.java 生成class文件 然后使用 java+空格+文件名 运行class文件.

										java基本语法需要注意的几点
						1  大小写敏感: Hello和hello 是不同的.
						2  类名若由一个英文单词组成,首字母应该为大写,若由多个单词组成,则遵从驼峰原则.
						3  方法名若由一个单词组成则首字母应该为小写,若有多个单词组成则从第二个单词起首字母为大写
						4  源文件名:一个源文件里面可以有多个类但是公共的类!!!也就是以**public修饰的类名**	只能有一个并且源文件的文件名要与公共的类名一致!
						5  主方法public static void main(String [] args){} 这是程序的入口,所有的java程序都由主方法开始执行
						
										java标识符	
						1  所有的标识符都由 字母,数字,下滑线或者美元符号$开始
						2  标识符不能以数字开头
						3  标识符大小写敏感
						4  关键字不能作为标识符

										java修饰符		
						1  访问控制修饰符:default  public  protected  private(public公共的  private私有的,一般被私有修饰的不能被继承)
						2  非访问控制修饰符 : final abstract static synchronized (abstract 为抽象的 static为静态的)		


										java变量	
						1 局部变量(在方法中或者构造方法中,语句块中的变量称为局部变量,变量声明和初始化也就是赋值都在方法中,方法结束,局部变量随之销毁)
						2 成员变量(在方法外类中,在创建对象实例化,会随对象进入堆内存开辟的空间中,可以被类中的方法,构造方法和特定类的语句块访问)
						3 类变量	(被static修饰的,静态变量,在类中方法体外)	

										java注释		
						1  //双斜杠是单行注释
						2 /**/是多行注释
						3 /***/是文本注释可以生成javadoc的说明文档


										java创建对象
						对象是根据类来创建的,使用关键字new来创建一个对象				
						1  声明:声明一个对象,包括对象的名称和类型
						2  实例化:使用关键字new来创建一个对象
						3  初始化:使用new创建对象时,会调用构造方法(也就是构造器)来初始化对象	
						构造方法(也叫构造器)每个类都有一个构造方法,如果我们没有手动为这个类添加一个构造方法,java编译器会默认提供一个空参构造方法,在new对象的时候至少会调用一个构造方法(空参构造器),一个类可以添加多个构造方法,有参和无参构造方法都可以,构造方法的名称要对类名一致


										java实例化变量与方法的调用
						1  创建对象 Dog dog =new Dog();
						2 通过实例化变量(也就是创建的对象来调用方法)写法为:dog.eat();
						

										java数据类型									
						1 基本数据类型:
						byte:
						8位占1个字节
						范围(-128,127)
						默认值为:0
						byte类型变量占用空间为int类型变量的四分之一
						
						short:
						16位占2个字节
						范围(-2^15-2^15 - 1)
						默认值:0
						short类型变量占用空间为int类型变量的二分之一
						
						int:
						32位占4个字节
						范围(-2^31-2^31 - 1)
						默认值为:0

						long:
						64位占8个字节
						范围(-2^63-2^63 -1)
						写法为:2000000L (L为大写因为小写与数字1难以区分)
						默认值:0

						float:
						float	:单晶浮点型	32位占4个字节
						默认值与写法:0.0f

						double:
						double:双精浮点型	64位占8个字节
						一般在声明的时候系统会默认小数写法为double型
						
						boolean:
						boolean:布尔型,占1位,0和1,true和false
						默认值为:false

						char:
						char:单个字符型 'a'占16位的Unicode 字符
						只能储存单个字符

						2 引用类型
						引用类型类似一个指针,相当于存变量的地址
						对象和数组都是引用数据类型
						所有引用类型的默认值都是null
						一个引用变量可以用来引用任何与之兼容的类型

									java常量
						常量在运行是不可以修改的
						在java中使用final关键字来修饰的称为常量
						常量的变量名通常为大写

								java自动类型转换			
						byte,short,char—> int —> long—> float —> double 
						小的的数据类型可以转为大的,但是大的转为小的会超出范围,如果一定要转需要用到强制转换
						转换规则:
						1 不能对布尔类型进行转换
						2 不能把对象类型转换成不相关类的对象
						3 在把容量大的类型转换为容量小的类型时必须使用强制类型转换
						4 转换过程中可能导致溢出或损失精度
						5 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
						
								强制类型转换
						1 条件是转换的数据类型必须是兼容的
						2 格式:int i1 = 123;   byte b = (byte)i1	
    	                        隐含强制类型转换
    	                1 整数默认是int类型
    	                2 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f      
						
								java变量类型
						1 类变量:	独立方法之外,用static修饰	
						2 实例变量:不用static修饰,也叫成员变量
						3 局部变量:类的方法中的变量

								局部变量
						1  局部变量声明在方法、构造方法或者语句块中
						2  局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁
						3  局部变量只在声明它的方法、构造方法或者语句块中可见
						4  局部变量是在栈上分配的
						5  局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用

								实例变量(成员变量)
						1  实例变量声明在一个类中,但在方法、构造方法和语句块之外
						2  当一个对象被实例化之后,每个实例变量的值就跟着确定
						3  实例变量在对象创建的时候创建,在对象被销毁的时候销毁
						4  实例变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息
						5  实例变量可以声明在使用前或者使用后
						6  访问修饰符可以修饰实例变量		
						7  实例变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把实例变量设为私有。通过使用访问修饰符可以使实例变量对子类可见
						8  实例变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定
						
								静态变量
						1  类变量也称为静态变量,在类中以 static 关键字声明,但必须在方法之外
						2  无论一个类创建了多少个对象,类只拥有类变量的一份拷贝		

								java修饰符
						1  private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
						2  public : 对所有类可见。使用对象:类、接口、变量、方法 	
						3  default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法
						4  protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)	
						
								java运算符
						1  自增(a++)	自减(a--)	前缀(++a) (--a)
						2  关系运算符:==(相等)   !=(取反)   
						3  逻辑运算符:&&(两边都为真才为真)    ||(两个中有一个满足为真结果就为真)  !(非)
						4  条件运算符a?b:c(如果a成立就为b否则就为c)

								java循环结构
						1  while(true)如果结果为真 while里面的循环将一直进行下去
						2  do......while()就算不满足条件,循环体里面的内容还是会执行一遍
						3  for执行一次循环后,更新循环控制变量,再次检测布尔表达式。循环执行上面的过程
						4 增强for循环:for(声明语句 : 表达式){}		
						5  break:用在switch循环里,用于跳出循坏体
						6  continue:用于任何循环语句结构,作用是结束本次循环,进行下一次循环
						7  if判断条件语句写法为:if(表达式){} 
						8  if....else:if(表达式){}else{}如果表达式为true就执行if语句块 如果为false就执行else语句块里面的语句
						9  if..else.if 这种可以添加多个判断表达式
						10  switch case:语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
						当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句
						switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句



										java类的继承
						1  如果有两个类中的属性和方法有大多数一致,我们可以从这两个类中抽象出一个父类(超类),然后让两个类继承这个父类,这样做法的好处可以是程序变得灵活与轻巧,减少重复的代码量
						2  子类拥有父类非 private 的属性、方法
						3  子类可以拥有自己的属性和方法,即子类可以对父类进行扩展
						4  子类可以用自己的方式实现父类的方法(方法重写)	
						5  java中的继承是单继承即:a继承b, a继承c,一个父类可以有多个子类,但所有子类只能有一个父类
						6 继承关键字:extends 写法 class A extends	class B

									super 与 this 关键字		
						1  super关键字:我们可以通过super关键字来实现对父类成员的访问,用来引用当前对象的父类
						2  this关键字:指向自己的引用
						3  final关键字:final 关键字声明类可以把类定义为不能继承的,即最终类;或者用于修饰方法,该方法不能被子类重写


										java构造器			
						  子类是不继承父类的构造器(构造方法或者构造函数)的,它只是调用(隐式或显式)。如果父类的构造器带有参数,则必须在子类的构造器中显式地通过 super 关键字调用父类的构造器并配以适当的参数列表。

如果父类构造器没有参数,则在子类的构造器中不需要使用 super 关键字调用父类构造器,系统会自动调用父类的无参构造器

										java中的方法重写		
						1  重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变
						2  重写的好处在于子类可以根据需要,定义特定于自己的行为。 也就是说子类能够根据需要实现父类的方法
						3  参数列表必须完全与被重写方法的相同
						4  访问权限不能比父类中被重写的方法的访问权限更低
						5  父类的成员方法只能被它的子类重写
						6  声明为final的方法不能被重写
						7  声明为static的方法不能被重写,但是能够被再次声明
						8 子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法
						9  子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和protected的非final方法
						10  构造方法(构造器)不能被重写		
						11  如果不能继承一个方法,则不能重写这个方法		
						12  当需要在子类中调用父类的被重写方法时,要使用super关键字


										java方法的重载					
						重载(overloading) 是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。

每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。

最常用的地方就是构造器的重载
1 被重载的方法必须改变参数列表(参数个数或类型不一样)
2 被重载的方法可以改变返回类型
3 被重载的方法可以改变访问修饰符
4 方法能够在同一个类中或者在一个子类中被重载
5 无法以返回值类型作为重载函数的区分标准

									重写与重载的区别				
					1  方法重载是一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同而类型和次序不同,则称为方法的重载
					2  方法重写是在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一样,返回值也一样的方法,就称为重写
					3  方法重载是一个类的多态性表现,而方法重写是子类与父类的一种多态性表现
													

									java的多态
					必要条件:1  继承 2  重写  3  父类引用指向子类对象
									多态的实现方法
					1  重写  2  接口  3  抽象类和抽象方法

								java抽象类
					1  抽象类里面只能有抽象方法,抽象方法没有方法体
					2  抽象类子类要继承它,而且必须要重写(实现)方法		
					3  抽象类用abstract修饰词修饰的类称为抽象类		
					4  抽象类不能被实例化
					5  抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类
					6  抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能
					7  构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法
					8  抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类	


								java封装
				 用private修饰的属性 为私有的,如果子类要访问者用private 修饰的属性,需要通过getter和setter方法(属性设置器和属性访问器)						
								
								java接口			
				1  简单理解为里面全是抽象方法
				2  接口通常以interface来声明,一个类通过继承接口的方式,从而来继承接口的抽象方法。
				3  除非实现接口的类是抽象类,否则该类要定义接口中的所有方法
				4  接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类
                           		接口与类的区别
                1  接口不能用于实例化对象
                2  接口没有构造方法
                3  接口中所有的方法必须是抽象方法
                4  接口不能包含成员变量,除了 static 和 final 变量
                5  接口不是被类继承了,而是要被类实现
                6  接口支持多继承
								接口的特性
				1  接口中每一个方法也是隐式抽象的,接口中的方法会被隐式的指定为 public abstract
				2  接口中可以含有变量,但是接口中的变量会被隐式的指定为 public static final 变量
				3  接口中的方法是不能在接口中实现的,只能由实现接口的类来实现接口中的方法

							接口和抽象类的区别	
				1  抽象类中的方法可以有方法体,就是能实现方法的具体功能,但是接口中的方法不行
				2  抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是 public static final 类型的
				3  接口中不能含有静态代码块以及静态方法(用 static 修饰的方法),而抽象类是可以有静态代码块和静态方法
				4  一个类只能继承一个抽象类,而一个类却可以实现多个接口
				5  接口的写法:Interface关键字用来声明一个接口
				6  接口中的方法都是公有的
				7  个接口能继承另一个接口,这和类之间的继承比较相似
				8  接口可以多继承 写法为:public interface Hockey extends Sports, Event

									java数组
				1  储存同类型大小一致的元素
				2  首先必须声明数组变量,才能在程序中使用数组
				3  写法:double[]  a或	double a[]				
				4  数组的元素是通过索引访问的。数组索引从 0 开始
				5  使用for循环来遍历数组
				6  二位数组:int b[][] = new int[2][3]						
				7  动态初始化:直接为二位数组分配空间
				8  比较数组:通过 equals 方法比较数组中元素值是否相等
				9  通过 binarySearch 方法能对排序好的数组进行二分查找法操作


									java异常处理
				1  检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略
				2  运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略
				3  错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

									java捕获异常					         					
				1  使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方
				2  Catch 语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try 后面的 catch 块就会被检查
				3  如果发生的异常包含在 catch 块中,异常会被传递到该 catch 块,这和传递一个参数到方法是一样
				4  一个 try 代码块后面跟随多个 catch 代码块的情况就叫多重捕获
				5  如果一个方法没有捕获到一个检查性异常,那么该方法必须使用 throws 关键字来声明。throws 关键字放在方法签名的尾部。也可以使用 throw 关键字抛出一个异常,无论它是新实例化的还是刚捕获到的	
             	6  一个方法可以声明抛出多个异常,多个异常之间用逗号隔开
             	7  finally 关键字用来创建在 try 代码块后面执行的代码块。无论是否发生异常,finally 代码块中的代码总会被执行。在 finally 代码块中,可以运行清理类型等收尾善后性质的语句。finally 代码块出现在 catch 代码块最后
             	8  在 Java 中你可以自定义异常
             	9  所有异常都必须是 Throwable 的子类
             	10  如果希望写一个检查性异常类,则需要继承 Exception 类
             	11  如果你想写一个运行时异常类,那么需要继承 RuntimeException 类
				通用异常:
				1	NullPointerException(空指针异常) 类,ArrayIndexOutOfBoundsException 类,ClassCastException 类。					
				2  IllegalArgumentException 类,IllegalStateException 类
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值