今日重点:
目录
一、面向对象的概述
Java是一门面向对象的编程语言。在java中,万事万物皆对象(在Linux中,万事万物皆文件)。其实,高级的编程语言,会向着人的思考靠近。面向对象更高级的抽象,是对现实世界的映射。
1、面向过程和面向对象
(1)面向过程
面向过程就是分析出实现需求需要的步骤,通过一些方法一步一步实现。
(2)面向对象(行为化)
把整个需求的按照特点、功能划分,将这些存在共性的部分封装成类(类实例化之后才是对象),让对象去解决问题。
举一个例子:
七夕了,你想送给你女朋友一个包。
面向对象:找个店,买个包。不管是商家,还是包都是现实中真实存在的事物,这个商店或者包我们就可以称之为对象。在整个的你去买包或商家卖包,我们忽略 了包怎么加工的?
面向过程:找到原材料,字节切割,自己缝制,每一个工序都自己干,这就是过程。2、Java面向对象程序设计的特点
(1)封装
(2)多态
(3)继承
二、类与对象
1、成员变量
2、成员方法
(1)值参数
(2)引用参数
(3)不定长参数
3、构造方法
构造器(构造方法)
* 语法:
* 访问权限修饰符 类名(参数列表){
*
* }
* 特点:
* 1.java在new对象的时候,先看对象所对应的类有没有构造器,有什么样的构造器。
* 如果没有构造器,则无法创建对象
* 2.每个类会有一个默认的无参的构造器
* 3.在对象被实例化时,调用了构造器
* 4.我们创建对象实际上是通过构造器创建的
* 5.如果一个类中显式的声明了一个构造器,原来默认自带的无参构造器就失效
*/
4、方法重载
(1)概念
方法的重载(Overload)
* 1.方法名相同
* 2.参数不同(参数的类型,参数的个数,参数的顺序)
* 3.发生在同一个类里
* 与返回值类型无关,与访问权限修饰符无关,与方法体无关
* 方法的重载的好处:
* 为了把功能相似相同的方法用同一个名字public class Ch02 { // public int sum(int num1,int num2){ // // return num1 - num2; // } public void sum(int num1,int num2) { System.out.println(num1 + num2); } public void sum(int num1,int num2,int num3){ System.out.println(num1 + num2 + num3); } public void sum(double d1,double d2) { System.out.println(d1 + d2); } public void sum(int num1,double d2){ System.out.println(num1 + d2); } // public void sum(double d1,int num1){ // // } // public void sum(double d2,int num2){ // // } public void sum(double d1,double d2,double d3){ System.out.println(d1 + d2 + d3); } public static void main(String[] args) { Ch02 c = new Ch02(); c.sum(1,2); } }
(2)案例
需求:
* 写两个重载的方法
* 1.一个方法求两个数的最大值
* 2.另一个方法求三个数的最大值public class Ch03 { public int max(int num1,int num2) { return num1 > num2 ? num1:num2; } public int max(int num1,int num2,int num3){ int a = (num1 > num2 ? num1 : num2); return a > num3 ? a : num3; } public static void main(String[] args) { Ch03 c = new Ch03(); c.max(1,2,3); } }
5、访问权限
* 访问权限:
* public:一个工程下任意位置都可以访问
* 类,属性上,方法上,构造器
* protected:可以跨包,如果跨包,必须是他的子类
* 属性,方法,构造器
* (默认的):当前包下可以访问
* 类,属性,方法,构造器
* private:只有当前类可以访问
* 属性,方法,构造器