面向对象编程(一)

面向对象编程(一),第1张

一、封装

1、类:可以帮助用户完成自动定义多个变量

     定义类:class 类名{                                                                    所含变量定义                                             }

2、使用类实例化对象

•在定义了类之后只是定义了数据类型,要想使用类,必须用该类型定义相应的“变量”。

•一般情况下,由类定义“变量”不叫“定义变量”,而叫“实例化对象”。

•通过类实例化对象的最简单的语法:

    类名 对象名=new 类名()

3、类成员

(1)成员变量
    成员变量是指类的一些属性定义,标志类的静态特征,它的基本格式如下:
  •访问修饰符 修饰符 类型 属性名称=初始值;
访问修饰符:可以使用四种不同的访问修饰符中的一种,包括public(公共的)、protected(受保护的),无修饰符和 private(私有的)。public 访问修饰符表示属性可以从任何其它代码调用。private 表示属性只可以由该类中的其它方法来调用。protected 将在以后的课程中讨论。
  •修饰符:是对属性特性的描述,例如后面会学习到的:static、final 等等。
  •类型:属性的数据类型,可以是任意的类型。
  •属性名称:任何合法标识符
  •初始值:赋值给属性的初始值。如果不设置,那么会自动进行初始化,基本类型使用缺省值,对象类型自动初始化为 null。

    成员变量有时候也被称为属性、实例变量、域,它们经常被互换使用。


(2)成员方法
    成员方法就是对象所具有的动态功能。Java 类中方法的声明采用以下格式:
  •访问修饰符 修饰符 返回值类型 方法名称 (参数列表) throws 异常列表 {方法体}              访问修饰符 : 可以使用四种不同的访问修饰符中的一种,包括public、 protected、无修饰符和 private。public 访问修饰符表示方法可以从任何其它代码调用。private表示方法只可以由该类中的其它方法来调用。protected 将在以后的课程中讨论。
  •修饰符:是对方法特性的描述,例如后面会学习到的:static、final、abstract、synchronized 等等。
  •返回值类型:表示方法返回值的类型。如果方法不返回任何值,它必须声明为 void(空)。Java 技术对返回值是很严格的,例如,如果声明某方法返回一个int值,那么方法必须从所有可能的返回路径中返回一个int值(只能在等待返回该 int 值的上下文中被调用。)
  •方法名称:可以是任何合法标识符,并带有用已经使用的名称为基础的某些限制条件。
  •参数列表:允许将参数值传递到方法中。列举的元素由逗号分开,而每一个元素包含一个类型和一个标识符。在下面的方法中只有一个形式参数,用 int 类型和标识符 days 来声明:
    public void test(int days){}
  •throws 异常列表:子句导致一个运行时错误(异常)被报告到调用的方法中,以便以合适的方式处理它。异常在后面的课程中介绍。
  •花括号内是方法体,即方法的具体语句序列。

•setter和getter                                        setter和getter方法就是设置值与获取值的意思:当我们在一个类中声明私有变量时(即private·修饰的变量),我们就可以通过setter方法为对应的私有属性进行设置值,通过getter获取对应属性的值。这是常用的用法。

•方法重载                                                              方法重载也成为多态。多态是面向对象编程的特征之一。多态,通俗来讲就是一个东西在不同情况下呈现不同形态。                                    重载规则:                                                         •方法名必须一致                                               •参数列表必须不一致(参数类型、参数个数、参数排列顺序)                                             •方法的返回类型可以相同也可以不同             •只是返回类型不同不是方法重载       

(3)构造方法

构造函数原则:                                               •函数名称与类的名称相同                           •不含返回值                                                        定义了构造函数之后,在实例化对象时,必须传入相应的参数列表,否则会报错。             其使用方法如下:                                               类名 对象名=new 类名(传给构造函数的参数列表)

4、this关键字                                                    •this是一个关键字,翻译为:这个。            •this是一个引用,this是一个变量,this变量中保存了内存地址指向了自身,this存储在JVM堆内存中Java对象的内部。
•创建100Java对象,每一个对象都有this,也就是说有100个不同的this。                          •this可以出现在“实例方法”当中,(this指向)代表当前正在执行这个动作的对象。(this代表当前的对象“张三”)。

    this调用本类中的属性,也就是类中的成员变量(this.成员变量);this其实是当前类对象的引用,通过当前这个类实例化的对象的引用来访问对象的成员变量。

    this调用本类中的其他方法(this.成员方法);                                                              注意:只能在构造方法中通过this来调用其他构造方法,普通方法中不能使用。                               不能通过this递归调用构造方法,即不能在一个构造方法中通过this直接或间接调用该构造方法本身。                                                         通过this调用其他构造方法必须放在构造方法的第一行中执行。                                               由于super调用父类的构造函数也必须放在构造方法的第一行中执行,因此,通过this和super调用构造方法不能同时出现一个构造方法中。也不能在一个构造方法中多次调用不同的构造方法。

     this调用本类中的其他构造方法,调用时要放在构造方法的首行。

5、static关键字

    在java中,static是一个修饰符,用于修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能;被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

6、package和import                                          •package和 import都是Java关键字
    package语句作为Java源文件的第一条语句,指明该文件中定义的类所在的包。(若缺省该语句,则指定为无名包)。
    package的语法格式:package 顶层包名.子包名 ;
    package对应于文件系统的目录,package语句中,用 “.” 来指明包(目录)的层次;
    package通常用小写单词标识。通常使用所在公司域名的倒置com.atguigu.xxx


•Java_package的作用
    package帮助管理大型软件系统:将功能相近的类划分到同一个包中。比如:MVC的设计模式
    package可以包含类和子包,划分项目层次,便于管理
    package解决类命名冲突的问题
    package控制访问权限

•Java_import关键字
    为使用定义在不同包中的Java类,需用import语句来引入指定包层次下所需要的类或全部类(.*)。
    import语句告诉编译器到哪里去寻找类。
    import语法格式:import 包名. 类名;
//import pack1.*;表示引入pack1.pack2包中的所有结构
import pack1.Test; 
public class PackTest{
    public static void main(String args[]){
        Test t = new Test(); //Test类在pack1.pack2包中定义
        t.display();
    }
}

•Java_import关键字重点
    在源文件中使用import显式的导入指定包下的类或接口
    声明在包的声明和类的声明之间。
    如果需要导入多个类或接口,那么就并列显式多个import语句即可
    可以使用java.util.*的方式,一次性导入util包下所有的类或接口。
    如果导入的类或接口是java.lang包下的,或者是当前包下的可以省略import语句。
    如果在代码中使用不同包下的同名的类。那么就需要使用类的全类名的方式指明调用的是哪个类。
    如果已经导入java.a包下的类。那么如果需要使用a包的子包下的类的话,仍然需要导入。
    import static组合的使用:调用指定类或接口下的静态的属性或方法。

 

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/792602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存