[关闭]
@MRsunhuimin 2019-07-22T11:02:42.000000Z 字数 2345 阅读 191

java在家第四-五天(2019.07.17-07.18)

java基础
作者:孙慧敏

本节内容没有《面向对象要点总结》全面

0. 开发方法

0.1 结构化开发

    1. 面向功能划分软件结构

    2. 自顶而下

    3. 最小的子系统是方法

    4. 制约了软件的可维护性和可扩展性

0.2 面向对象开发

    1. 把软件系统看成各种对象的集合

    2. 系统结构较稳定

    3. 子系统相对独立

    4. 软件可重用性、可维护性和可扩展性强

1. 类和对象

1.1 对象

    对象:用来描述客观事物的一个实体,由一组属性和方法构成
1.1.2 对象的特征--属性:
    1. 对象具有的各种特征

    2. 每个对象的每个属性都拥有特定值
1.1.3 对象的特征--方法:
    方法:对象执行的操作就是方法

方法的注意事项

    1,方法必须定义在类中,方法外 

    2,方法不能定义在方法中

1.2 类

    类:具有相同属性和方法的一组对象的集合

    类是对象的抽象,对象是类的具体(实体)

2. java类

  1. public class 类名 {
  2. //定义属性部分
  3. 属性1的类型 属性1;
  4. 属性n的类型 属性n;
  5. //定义方法部分
  6. 方法1;
  7. 方法m;
  8. }

2.1 补充

1. 定义类的步骤:
    (1)定义类名
    (2)编写类的属性
    (3)编写类的方法

2. 类名首字母大写

2.2 类图

特点:

    1. 用于分析和设计“类”

    2. 直观、容易理解
  1. ————————————————————————————————
  2. dog(类名)
  3. ————————————————————————————————
  4. +(public name(属性名):String(类型)
  5. + health:int
  6. -(private) love:int
  7. ————————————————————————————————
  8. + print( )(方法名) : void(返回值类型)

2.3 创建和使用对象

  1. 使用对象的步骤:
  2. 1. 创建对象
  3. 2. 类名 对象名 = new 类名();
  4. School center = new School();
  1. 引用对象成员:使用“.”进行以下操作
  2. 引用类的属性:对象名.属性
  3. 引用类的方法:对象名.方法名()
  4. center.name = "课工场"; //给name属性赋值
  5. center.showCenter(); //调用showCenter()方法

3. 类的方法

    方法是个“黑匣子”,完成某个特定的应用程序功能,并返回结果

    类的方法定义类的某种行为(或功能)

3.1 方法的返回值

两种情况:

    3.1.1 如果方法具有返回值,方法中必须使用关键字return返回该值,返回值类型为该值的类型(返回值只能有一个) 

    3.1.2 如果方法没有返回值,返回值类型为void

3.2 方法调用

    方法之间允许相互调用,不需要知道方法的具体实现,实现重用,提高效率 
情况 举例
Student类的方法a( )调用Student类的方法b( ),直接调用 public void a( ) { b( );//调用b( ) }
Student类的方法a( )调用Teacher类的方法b( ),先创建类对象,然后使用“.”调用 public void a( ) { Teacher t = new Teacher( ); t.b( ); //调用Teacher类的b()}

4. 参数

4.1 定义带参数的方法

    <访问修饰符>  返回类型  <方法名>(<形式参数列表>) {
    //方法的主体
    }

4.2 调用带参数的方法

    对象名.方法名(参数1, 参数2,……,参数n)->实参列表

    4.2.1 调用方法时不能指定实参类型

    4.2.2形参和实参数据类型和数量要一致

4.3 方法传参

基本数据类型和引用数据类型数据在传参时区别:

    基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。引用数据类型(类、数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用
  1. public class Test {
  2. public void calc1(int num){
  3. num=num+1;
  4. }
  5. public void calc2(Student student){
  6. student.age=student.age+1;
  7. }
  8. }
  1. //测试类
  2. Test test=new Test();
  3. int n=8;
  4. test.calc1(n);
  5. Student stu=new Student();
  6. stu.age=18;
  7. test.calc2(stu);
  8. System.out.println(n+"---"+stu.age);
        输出结果:8---19

5. 构造方法

5.1 构造方法:

    访问修饰符   构造方法名 ( ) { 
   //初始化代码
   }

特点:

    5.1 无返回值类型

    5.2 方法名与类名相同

    5.3 可以指定参数 

作用

    对象初始化(系统提供默认无参构造方法)

5.2 构造方法重载

自定义构造方法

    5.2.1 方法名相同

    5.2.2 参数项不同

    5.2.3 与返回值、访问修饰符无关

此时系统不再提供默认无参构造方法

  1. public Student(){}
  2. public Student(String name,int age){
  3. this.name=name;
  4. this.age=age;
  5. }
  6. 带参构造方法this关键字,是对一个对象的默认引用这里用以区分同名成员变量

6. this关键字的用法

  1. 调用属性
  2. this.health = 100;
  3. this.name = "大黄";
  4. 调用方法
  5. this.print();
  6. 调用构造方法
  7. this();
  8. this("小黑",100,100,"雄");
  9. //如果使用,必须是构造方法中的第一条语句

7. 方法重载

特点:

    7.1 同一个类中

    7.2 方法名相同

    7.3 参数个数或类型不同

    7.4 与返回值、访问修饰符无关

8. 成员变量和局部变量的区别

8.1 作用域不同

    局部变量的作用域仅限于定义它的方法
    成员变量的作用域在整个类内部都是可见的

8.2 初始值不同

    Java会给成员变量一个初始值
    Java不会给局部变量赋予初始值

8.3 注意

    在同一个方法中,不允许有同名局部变量,在不同的方法中,可以有同名局部变量
    在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注