java -- 面向对象
Posted jiujiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java -- 面向对象相关的知识,希望对你有一定的参考价值。
一.方法重载(1)
1,不同的形参列表:类型不同,个数不同,顺序不同
2,方法的重载和权限修饰符,返回值类型,形参的变量名无关
3,如何确定调用的是哪个方法:方法名+形参列表
4,如果有相同的类型(形参的类型)那么就直接调用,如果没有,就在查找是否有可以自动类型提升的方法
一.可变形参(2)
/* * 可变形参 * * 格式:方法名(变量的类型 ... 变量名) * * 说明; * 1.可变形参的个数可以是0个1个或多个 * 2.可变形参的底层就是一个数组,取值的方式和数组一模一样 * 3.数组和可变形参如果变量类型一样,不构成重载 * 4.一个数组中只能有一个可变形参,且是最后一个参数 */ public class MoreArgs public static void main(String[] args) ComputerNumber cn = new ComputerNumber(); cn.sum(1,2,3); cn.sum(0); cn.sum(1,2,3,4,5); class ComputerNumber // 可变形参底层就是一个数组 public void sum(int ... numbers) int sum = 0; for(int i = 0;i < numbers.length;i++) sum += numbers[i]; System.out.println(sum);
二.package包
package作用:java为了对所有的类进行统一的管理和划分,所以才有了包的概念
说明:
作用:java为了对类进行统一的管理,所以才有了包的概念
包名:com.域名.项目名.模块名
".":每"."一次代表一层目录
类名:不同的包下的类名可以相同,相同包下的类名不能相同
位置:源文件的首行
三.import关键字
关键字:import
1.在源文件中使用import显式的导入指定包下的类和接口
2.声明在包的声明和类的声明之间
3.如果需要导入多个类和接口,那么就并列显式多个import语句即可
4.举例:可以使用java.util.*的方式,一次导入util包下所有的类和接口
5.如果导入的类或接口是java.lang包下的,或当前包下的,则可以省略此import语句
6.如果在代码中使用不同包下的同名的类,那么就需要使用类的全类名的方式指明调用的是那个类
7.import static组合的使用:调用指定类或接口下的静态的属性或方法
8.如果已经导入java.a包下的类,那么如果需要使用a包的子包下的类的话, 仍然需要导入
四.面向对象
1)面向对象与面向过程:
>面向过程:强调的是功能行为
>面向对象:将功能封装金对象,强调具备了功能的对象
2) 面向对象的三大特征:封装,继承,多态
3)Java四种权限修饰符public,protected,private,缺省的
五.为什么要使用封装性:
a.在创建对象后,我们可以通过对象名.属性名,给属性进行赋值,赋值时只有变量的类型和范围的限制。但是在开发中我们往往还会有很多的限制。而这些限制条件不能在属性的声明处加以限制。我们采取如下方法:
1.对属性进行权限的限制。这样可以防止属性在类的外部被进行调用
2.创建方法,通过方法对属性进行赋值。在方法中可以加以条件的限制。
b.封装性的体现(狭义上):
1.私有化属性
注意:约定俗成的将给属性赋值的方法命名成setXxx,获取属性的值的方法命名成getXxx,无论set还是get方法都是普通的方法
2.使用set/get (set/get方法就是方便理解方法的作用)方法进行属性的赋值和获取
c.封装性的体现(广义上)
1.权限修饰符:public private protected 缺省的
2.类只可以被public 和 缺省的修饰
3.四种权限修饰符可以修饰:属性,方法,内部类,构造器
六.构造器的特征
1.它具有与类相同的名称
2.它不声明返回值类型。(与声明void不同)
3.不能被static,final,synchronized,abstract,native修饰,不能有return语句返回值
构造器的作用:创建对象;给对象进行初始化
* 给属性的赋值方式? * 1. 默认赋值 2.显示赋值(声明即赋值) 3.对象名.属性名 / 对象名.方法名 4.构造器赋值 * * 给属性赋值顺序:1 -> 2 -> 4 ->3
以上是关于java -- 面向对象的主要内容,如果未能解决你的问题,请参考以下文章