笔记:S2____2018/8/20-2018/9/4

S2____2018/8/20

  1. TIOBE
  2. .NET框架的两个主要组件
    1.公共语言运行时(CLR):所有.NET应用程序运行的环境
        1.CTS:通用类型系统,定义了在IL中的中的数据类型

    2.CLS:公共语言规范,包括几种面向对象的编程语言的

2.框架类库(FCL)

3.C#程序编译两次

4.封装是面向对象的三大特征之一
     一个不可分割的独立实体

1. 隐藏内部的细节

     保留对外接口

  2.通过访问修饰符授权

  3. 类是一个最基本的封装
  4.
              保证数据安全
     优点     提供清晰的对外接口

              类内部实现可以任意修改,不影响其他类

  1.    C#编译器

    C#

                 MSIL代码              即时编译器        平台专用语言      代码被执行

    VB.NET              微软中间语言代码:  (JIT)                  

       VB.NET编译器     提供通用算法                                (CLR)  

 
   

 

 

 

 

 

 

 

 

 

 

 

 

 

2018/8/21

1.反编译:将字节码文件(.class)转换为源文件(.java)
    工具:Jad 、FrontEnd

2.数据库设计工具:PowerDesigner

3.结构化开发:

                 面向功能划分软件结构

              自顶而下

             最小的子系统是方法

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

 

面向对象开发:

           

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

            系统结构较稳定

            子系统相对独立

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

4.基本数据类型和引用数据类型在传参时的区别
    基本数据类型:操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。
    引用数据类型(类、数组、接口):赋值是把原对象的引用(可理解为内存地址)传递       给另一个引用。

5.无参构造:
    public Student(){

    super();  // object对象

}

要点:1.方法名与类名一致
           2.访问修饰符是public
 

有参构造:
public Student(String name,int score){
     this.name = name;

this.score = score;

// 给成员变量赋值用this
}  

要点: 方法名必须一致,但是参数列表个数或者类型可以不一致(当出现多个同样的方法,叫方法的重载)

   

无参构造、有参构造可以共存
    作用:对象初始化
    通过this();  即可调用本类的无参构造方法

 

6.方法重载:
             同一个类中
             方法名相同
             参数个数或数据类型不同
             与返回值,访问修饰符无关

 

 

 

 

 

2018/8/22

1.

byte 

1字节8位

-128~127

int

4    32

-2147483648~2147483647 (-2^31 ~ 2^31-1)

short

2    16

-32768~32767 (-2^15 ~ 2^15-1)

long

8    64

-2^63 ~ 2^63-1

float

4  32浮点数

1.4E-45 ~ 3.4E+38 , -1.4E-45 ~ -3.4E+38

double

8  64浮点数

4.9E-324 ~ 1.7E+308, -4.9E-324 ~ -1.7E+308

 2.常量:final
    优点:比较安全

1.常量名通常大写
    2.不同字符使用下划线分隔
    3.只能被赋值一次,通常在定义时即对其赋值

3.boolean hasNext()  判断是否有输入数据

4.自动类型转换:
    1.如果一个操作数为double型,则整个表达式可提升为douoble型

    2.条件:
        1.两种类型要兼容     数值类型(如整型和浮点型)互相兼容
                            自定义数据类型兼容(猫是父类,Tom是子类)

        2.目标类型大于源类型

5.短路|| /&&

6.三目(三元)运算符:
    条件 ?表达式1 :表达式2

         

true      false

 

7.封装的概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问

  两个大致原则:
1.把尽可能多的东西隐藏,对外提供便捷的接口

        2.把所有的属性隐藏

  封装的步骤:
1.修改属性的可见性:设为private,防止错误的修改
2.创建公有的getter/setter方法:用于属性的读写
3.在getter/setter方法中加入属性控制语句:对属性值的合法性进行判断

8.包的作用:
1.允许类组成较小的单元(类似文件夹),易于找到和使用相应的文件

        2.有助于实施访问权限控制

        3.防止命名冲突,区分名字相同的类

9.

修饰符作用域

同类

同包

子类

Anywhere

private

×

×

×

默认

×

×

protected

×

public

  1.   静态代码块:当JVM加载类时,就会执行。如果有多个,按照顺序执行
       语法:static{};
  2. 静态方法:可直接通过类名访问,必须被实现
    1.静态方法中不能使用this和super
    2.不能直接访问所属类的实例变量和实例方法
    3.可直接访问类的静态变量和静态方法
  3. Alt+Shift+S 封装
  4. 继承是JAVA中实现代码重用的重要手段之一。Java/C#中只支持单根继承,即一个类只能有一个直接父类
  5. 子类访问父类成员
        访问父类构造方法
            super();/super(name);
  1. 使用super关键字,super代表父类对象
  2. 在子类构造方法中调用且必须是第一句
  3. 不可访问父类中定义为private的属性和方法

15.super关键字:
     1.super只能出现在子类的方法和构造方法中

     2.super调用构造方法时,只能是第一句

     3.super不能访问父类的private成员
 

 

 

2018/8/23

1.构造函数+void是一个普通的实例方法
2.写有参构造时,再写一个无参构造
3.@Override 重写
    注解:描述代码的注释,根据不同的注解会相应地影响到代码的编译或执行

    注释:不执行注释里面的内容
4.构造方法不能被重写
    方法重写规则:
        1.方法名相同

        2.参数列表相同

        3.返回值类型相同或者是其子类(自动类型转换,如int-char)
        4.访问权限不能严于父类

        5.父类的静态方法不能被子类覆盖,父类的非静态方法不能被子类覆盖为静态方法

        6.子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法
        7.父类的私有方法不能被子类覆盖
        8.不能抛出比父类方法更多的异常

5.Object类是所有类的父类
    该类中经常被子类重写的方法:
        1. toString():返回当前对象本身的有关信息,按字符串对象返回

        2. equals() : 比较两个对象是否是同一个对象,是则返回true

        3. hashCode() : 返回该对象的哈希代码值

        4. getClass() : 获取当前对象所属的类信息,返回Class对象

6.多态:同一个引用类型,使用不同的实例而执行不同的操作
    实现多态(多种形态):

0.有子类继承父类
    1.向上转型,子类替换父类(自动类型转换)

        2.子类重写父类的方法

        3.父类的引用(声明的类型)调用子类的实现(重写的方法)

 

 

 

2018/8/24

  1. 设计模式
  2. 使用父类作为方法的形参、使用父类作为方法的返回值,是Java中实现和使用多态的主要方式
  3. 方法重写和方法重载有什么区别

比较项

位置

方法名

参数表

返回值

访问修饰符

方法重写

子类

相同

相同

相同或是其子类

不能比父类更严格

方法重载

同类

相同

不同

无关

无关

 

  1. Eclipse设置代码自动提示:

Windows→Preferences→Java→Editor→Content Assist→Auto activation triggers for Java

修改”.”为” .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVW”

设置Auto activation delay(ms)为”20”

 

2018/9/3

1.泛型    泛型集合

          泛型类

  泛型:操作的数据类型被定义为一个参数

2.泛型的重要性:
1.实现代码重用,未来的主流技术

      2.性能高,避免繁琐的拆箱、装箱   

   3.提供了更好的类型安全性

   4.CLR支持泛型

 

 

 

 

 

 

 

 

2018/9/4

1.构造函数     创建对象时自动调用

               没有编写构造函数时使用系统默认无参构造函数,手动编写后不会自动分配隐式构造函数

            方法名和类名相同,无返回值,主要完成对象的初始化工作

2.ctor+Tab  无参构造自动生成

3.方法重载:同一个类中,方法名相同,参数列表不同(参数类型、参数个数不同)

4.              消息

     对象A     传递方法      对象B

                反馈

 

 
   

    对象交互     封装:隐藏实现细节,公开某种功能作为与外界通信的通道

消息传递:每个对象都具有特定功能,相对其他对象而言,它的功能就

是为其他对象提供服务

 

  1. 对象间交互主要通过参数传递、方法调用以及属性操作等来实现
  2. 统一建模语言(UML)
  3. 时序图:   1.矩形-对象

           2.有标记的箭头-消息

            3.虚线-生命线

            4.控制焦点由矩形表示

时序图将交互关系表示为一个二维图,纵向是时间轴,时间沿纵线向下延伸。横向轴代     表了在协作中各独立对象的类元角色.

 

实例:顾客点餐的流程

 

猜你喜欢

转载自blog.csdn.net/SanitaryGardenia/article/details/82602624