• java培训(5-8节课)


    面向对象:
      1.利用面向对象的语法,实现代码的拆分(数据存储:对象的传值)。
      2.利用面向对象的语法,实现程序的结构处理(继承,多态,接口,抽象类)。
      3.用面向对象的编程方法,理解实现程序开发的框架和开发模式。

      面向过程:代码与数据不相关,通过主函数确立

      

      面向对象:在定义类的时候,数据代码关联,把函数写在类内,而不是主函数内,最终目标是类拿过来就能用

      

    学籍信息管理:(课上示例)
      管理的数据:班级,学生,老师(授课,班主任)。
      1.计算学生的考试成绩,需要补考的人数。
      2.计算出教师或学生的身高体重是否正常。

    Java中的注释:
      单行(//注释内容),多行(/*注释内容*/):写在类中,函数中。
      文档注释(/**文档注释内容*/):定义在类中。有助于程序编写(生成帮助文档 doc文件,系统提示)

      项目——>右键——>导出(export)

    Java中数据类型转换方式:
      基本数据类型之间转换:自动转换(值的大小小于被赋值变量大小),强制转换(值的大小大于被赋值变量大小)。
      复合数据类型之间转换,或复合数据类型和基本数据类型之间转换:使用数据类型转换的函数。
      Integer.toString();整型--->字符串
      Integer.parseInt();字符串--->整型
      Double.toString();浮点--->字符串
      Double.parseDouble();字符串--->浮点

    Java类的定义:公有的,默认的。

    •   成员变量(属性):数据存储,数据结构维护。
      • 访问权限:公有的,私有的,受保护的,默认的。
      • 存储方式:默认的(动态存储),静态存储,只读存储,等。

          动态存储:默认的。在创建一个对象时,该成员变量,存储堆区。且创建的每一个对象都独立使用一块内存空间。
            对于此成员变量的访问只能通过对象名。
          静态存储:在定义成员变量时,加入static关键字。该成员变量在程序时,就已经存储在全局数据区,其创建不依赖于对象的创建。
            故,静态成员变量只有一个,被多个对象所共享。既可以通过对象名引用也可以通过类名引用(系统推荐通过类名)。

      • 数据类型:
    • 成员函数(方法):对本类中多定义的成员变量的相关的操作。
      • 访问权限:公有的,私有的,受保护的,默认的。
      • 存储方式:默认的(动态存储),静态存储,只读存储,抽象,同步等。

          动态存储:只能通过对象名称来调用。
            为动态成员变量服务的(一般都是写操作动态成员变量的代码,当然在其中也可以出现静态成员变量的访问)。
          静态存储:通过类名或对象名称来调用(推荐使用类名)。
            为静态成员变量服务的(只能写操作静态成员变量的代码)。

      • 函数的定义格式:返回值,函数名称,参数列表:

          函数在一般情况下,遵循先定义后使用的原则。
          函数的定义:参数叫做形参(只能变量,接受数据。占用内存空间)。
          函数的调用:参数叫做实参(变量,常量,表达式,发送数据的)。
            因为变量的作用域不同,需要在主调函数向被调函数传值时,需要通过参数。
          参数的传参的方式:
            值传递:参数的数据类型为基本数据类型时,都是值传递。
            地址传递:除了基本数据类型,都是地址传递。
            在被调函数向主调函数返值时,需要通过参数的地址传递或函数的返回值。

      • 函数重名:多态性。

          1.不同类中同名函数:在调用时通过类名或对象名区分调用的函数具体哪个函数。
          2.同一个类中同名函数:函数的重载。
          函数的重载规则:函数名相同,但函数参数的类型,个数,顺序,有一个不同。
            编译之前:
            void aa();
            int aa(int i);
            int aa(char i);
            String aa(int i,int j);
            String aa(int a,int b);
            String aa(int i,char j);
            String aa(char a,int b);
            编译之后:
            void aa();
            int aaint(int i);
            int aachar(char i);
            String aaintint(int i,int j);
            String aaintint(int a,int b);
            String aaintchar(int i,char j);
            String aacharint(char a,int b);
          3.函数重写:子类和父类中有同名函数,调用的是那个函数。

    • 构造函数:一般情况下访问权限是public,没有返回值,函数名称必须和类名同名,参数可以任意设定,也有函数重载。(java中乜有拷贝构造函数和析构函数)

        一个类可以存在多个构造函数,构造函数使用是在new创建一个对象时,自动调用的。某一个对象创建时,只能调用一个构造函数。
          构造函数创建:
          1.当在类中没有为其指定一个构造函数时,系统会为其自动添加一个构造函数,这个构造函数就做默认构造函数(无参数,无代码)。
            public 类名()
            {
              //默认构造函数
            }
          2.如果指定了类的构造函数,那么其默认的构造函数,系统将不会自动创建。
          3.构造函数不能显示调用,它是new对象调用,作用是用来进行对对象的初始化赋值。
            注意:创建一个对象时,先开辟内存空间,然后执行变量定义时赋值,最后才是执行构造函数赋值。
             final 作用于成员变量时,这个成员变量代表只读变量。只能在定义变量时,或构造函数中对其赋值一次。
              如果定义变量时赋值,在构造函数中就不能再次赋值(赋值一次,在new对象时)。
            this指针和this函数();
              this指针:代表本对象的内存地址。
              this函数:代表调用本类的其它构造函数。

    类的定义习惯:
      1.动态成员变量私有访问权限,通过get,set方法来进行操作。静态成员变量直接定义公有的访问权限。
      2.定义两个构造函数(一个为无参构造函数,一个具有对该类所有成员变量进行初始化赋值参数的构造函数)

      Ctrl +A ——>Ctrl + I(界面美化)

      将很多行同时缩进:选中这些行 Tab(增加缩进) Shift+Tab (减少缩进)

      类成员 定义为私有——>选中函数——>右键——>Source——>getandset   (直接生成getName(),setName())

    类的关系:组合(一个类包含另一个类,两个类分别创建实例),继承(一个类是另一个类功能扩展,只需要创建一个类实例)

      类的组合:

    public class A
    {
        public int i=10;
    }
    public class B
    {
        public A a=new A();
        public int i=10;
    }
    public static void main(String arg[])
    {
        B b=new B();
        b.a.i;
        b.j;
    }

      

      类的继承:

    public class A
    {
        public int i=10;
    }
    public class B extends A
    {
        public int i=10;
    }
    public static void main(String arg[])
    {
        B b=new B();
        b.i;
    }

    继承特性:
      1.继承代码实现,继承的存储结构(和组合对比)。
      2.Java中所有的类彼此之间都有继承关系,所有类都继承Object类,将其称为基类。如果不手动设定一个类的父类,系统会默认其父类为Object类。
      3.一个类只能有一个父类(单一的继承),一个类可以有多个父接口(多重的继承)。
      4.在父类和子类同名成员变量。
        创建子类对象,其会先将父类的成员变量都创建出来,然后在创建其自己的成员变量。同名时,两个同名的成员变量分别占用自己的内存空间。
        对象名.成员变量、this.成员变量代表都是子类中的成员变量。在子类内部使用super.成员变量代表其父类同名成员变量。
        注意:子类不能直接查找其父类的父类的同名变量,需要通过其父类中转。
      5.super指针和super函数:super指针代表子对象中属于父对象部分内存空间的地址。super函数代表调用其父类的成员函数。
        如果在子类的够着函数中没有指定其调用其父类的哪一个构造函数,则系统默认调用父类的默认构造函数。否则,不再自动调用super函数。
      6.构造函数中:this函数和super函数,只能出现一个,因为这个函数的使用规则,都必须写在构造函数的第一行。

      7.在父类和子类同名成员函数。。。。

    静态变量:存在于全局数据区,不以来于对象的创建

    //班级类中 
            public ststc String no;
    //主函数中 
            TClass.no = "001";——>通过类名引用(系统推荐)
           new TClass().no = "002";——>通过对象名引用        

    形参占用内存(栈区,调用函数时即生成)

    字符串占2块内存,一是地址,二是内容 null和空字符串是不同的

    TClass() {no="";} 等价于 在外边定义时private String no = null;

    创建一个对象时,先开辟内存空间,然后执行变量定义时赋值,再执行构造函数(构造函数防止空指针异常)

    Object java中的亚当夏娃,是所有类的父类

    public class A {int i=10;}
    public class B {int i=20;}
    输出  b.i = 20 

    内存空间仍然存在,只是被自雷覆盖,内存结构如图

  • 相关阅读:
    又爱又恨的eval
    http_build_query 这个方法会把值为NULL的给干掉
    allow_url_fopen设置
    纠结了下 B 和 STRONG标签区别
    Drupal 发邮件模块 drupal smtp 安装与设置
    php array_merge 和 两数组相加区别
    学历严格正相关于素质 Kai
    表语就是主语补语,靠 Kai
    一些真正有思想的up Kai
    光速不变且最大,换个思路想,非常合理,犹如天经地义【转载】 Kai
  • 原文地址:https://www.cnblogs.com/acm-bingzi/p/3425135.html
Copyright © 2020-2023  润新知