zoukankan      html  css  js  c++  java
  • Java课程笔记_2

    一 课程内容

     1 int是32位数,所以在用16进制表示时0xffffffff(f表示1111)。负数是该数绝对值补码取反加1。

     2 面向过程编程:先确定算法,再确定数据结构。

    面向对象编程,先确定数据结构,再确定运算。

    3 this变量代表对象本身。当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的方法(方法中的局部变量),使用this区分成员变量和局部变量。this简化构造函数的调用,如this.x = x,将局部变量值赋给成员变量x。

    4 构造方法名字和类名相同,并且没有返回值。

    主要用于为类的对象定义初始化状态

    我们不能直接调用构造方法,必须通过new关键字调用,从而创建类的实例

    (1)当没有定义构造方法时,JAVA编译器为我们提供一个缺省的不带参数的构造方法。(2)当已经定义一个构造方法时,不管该方法带不带参数,JAVA编译器都不会提供缺省构造方法。(3)当定义两个构造方法时,带参数的调用带参数构造方法,反之亦然。这也是方法的重载。

    5 缺省构造方法各种数据类型初始值:数值型 0;boolean false;char '';对象 null。

    6 Point()

        {

            this(1,1);    在不带参数的构造方法中调用带参数的构造方法

        }

    7 实例方法和实际数据成员:实例方法是一个类的实例(对象)所调用的成员方法。

    所有的对象所调用的成员方法在内存中只有一份拷贝,但是在内存中可能有多个对象,每个对象在内存中都存在一份拷贝,所以成员变量值可能不同。如:

    pt.output()和pt2.output()只有一份拷贝,但是pt.x和pt2.x有两份拷贝。

    8

    (1)静态方法可以作为类的方法,在类加载时分配内存空间,所以直接调用,在。不是静态的方法作为实例(对象)的方法,需要new分配空间以后调用。

    (2)静态方法中不能调用非静态的方法和引用非静态的成员变量。反之,则可以。

    (3)可以用类的对象obj去调用静态的方法method(),如:obj.method()。

    (4)静态变量在内存中只有一个拷贝,所以多个对象给静态变量赋值,以最后一个为准。

     9 java Point这条解释语句先执行main方法的原因在于有static,是函数在加载Point类时运行,否则必须得在创建完对象后才能运行。

     10 方法重载在同一个类中,方法重写(覆盖)在父类和子类之间。

     11 每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。由于子类在定义父类已有的方法时会覆盖父类的方法,所以用super来访问父类被覆盖的变量和方法。

     12 多态性:通过覆盖父类的方法实现,在运行时根据数据传递的对象引用,来调用相应的方法。

     13

    面向过程编程:

    class Rectangle

    {

        Static int perimeter(int length,int width)

        {

            return 2*(length+width);

        }

        int area(int length,int width)

        {

            return length*width;

        }

        public static void main(String[] args)

        {

            

            System.out.println("perimeter = "+ Rectangle.perimeter(5,4));

            System.out.println("area of = "+ Rectangle.area(5,4));

        }

    }

     

    面向对象编程:

    class Rectangle

    {

        int l,w;

        int perimeter()

        {

            return 2*(l+w);

        }

        int area()

        {

            return l*w;

        }

        public static void main(String[] args)

        {

            Rectangle rect1=new Rectangle();

            Rectangle rect2=new Rectangle();

            

            rect1.l=10;

            rect1.w=5;

            System.out.println("perimeter of rect1 = "+rect1.perimeter());

            System.out.println("area of rect1 = "+rect1.area());

            

            rect2.l=6;

            rect2.w=4;

            System.out.println("perimeter of rect2 = "+rect2.perimeter());

            System.out.println("area of rect2 = "+rect2.area());

            

        }

    }

  • 相关阅读:
    [001]
    SpringBoot默认首页跳转设置
    Tomcat网站根目录设置
    SpringBoot获取前端传递JSON的几种方法
    MySQL调优性能监控之show profile
    MySQL新特性MTS
    Java线程池拒绝策略
    快速排序与荷兰国旗及Partition问题
    数据结构与算法之返回最小和问题
    MySQL之谓词下推
  • 原文地址:https://www.cnblogs.com/yjtm53/p/3827028.html
Copyright © 2011-2022 走看看