Java面向对象前面总结

  • Post author:
  • Post category:java


文章目录



1.在java中有哪些基本的数据类型,按照字节的顺序进行排序。

1.double>float>long>int>char|short>byte>boolean



2.在java中数据类型是如何进行划分的,分别指出有哪些。


引用数据类型

:类 数组 接口


基本数据类型

  1. int 默认为4 整型
  2. byte 1个字节 字节型
  3. long 长整型
  4. float double 浮点型
  5. short 短整型
  6. char 字符型


浮点数据类型

:float单精度 double双精度



3.switch关键字上面可以存储哪些相应的数据类型,请例举出。

  1. int ,char,byte,short(基本数据类型)

  2. Integer,Byte,Short,Character(基本数据类型封装类)

  3. Enum(枚举)JDK 1.5+

  4. String字符串 JDK 1.7+



4.关键字break,continue,return它们之间有哪些不同的使用规则。

  1. break 直接跳出当前的循环后面不在继续(使用与switch—case和循环结构)
  2. continue 跳出循环在继续(使用与循环结构)
  3. return 结束整个循环


5.while和do…while循环在使用的时候,有什么区别。

区别 while do—while
次数 可以一次没有循环 至少一次
条件 只要满足循环就会执行否则退出循环 先执行do里面的一次在进行循环判断


6.如何利用for循环打印九九乘法表。

/*
     打印99乘法表
 */
public class TestExercise {
    public static void main(String[] args) {
        for (int i = 1; i <=9 ; i++) {
            for (int j = 1;j <=i ; j++) {
                System.out.print(i+"*"+j+"="+i*j+" ");
            }
            System.out.println();
        }
    }
}

在这里插入图片描述



7.一维数组是如何定义的,二维数组是如何定义的。


一维数组:int arr[]={1,2,3};或者int arr[]=new int[]{1,2,3,};或者int arr[]=new int{1,2,3}


二维数组:int arr[][]= new int[][]{

{},{}}



8.如何利用for循环和forEach循环去遍历一维数组和二维数组。

+二维数组的for循环遍历

public static void main(String[] args) {
    int arr[][] = {{5, 5, 5, 2,}, {1, 1, 25, 5, 5,}};
    for (int i = 0; i < arr.length ; i++) {
        for (int j = 0; j <arr[i].length ; j++) {
            System.out.print(arr[i][j]+" ");//输出最后的数组
        }
        System.out.println();
    }
}

+二维数组的for each遍历

在这里插入图片描述

public static void main(String[] args) {
    int arr[][] = {{5, 5, 5, 2,}, {1, 1, 25, 5, 5,}};
        for ( int[] i:arr){
            for (int a:i) {
                System.out.print(a+" ");//直接输出最后遍历的数组
            }
            System.out.println();
        }
        
}


9.掌握冒泡排序的原理,了解选择排序的效率 。

//相邻两个人进行比较 大的数放在前面 小的数放在后面
public static void main(String arg[]){
       int arr[]={5,4,1,2,1};//定义一个无序的一维数组
       bubble(arr);
       System.out.println(Arrays.toString(arr));
}
public static void bubble(int arr[]){
       for(int i=0;i<arr.length-1;i++){
       //arr.length-1也可以是arr.length因为最后一个数是可以不需要排序的
          for(int j=0;j<arr.length-1-i;j++){
       //因为前面还要比较后面的那个数 所以j的长度数减去1减去i 
               //判断
               
               if(arr[j+1]>arr[j]){
                int m=arr[j+1];
                arr[j+1]=arr[j];
                arr[j]=m;  
                }
          }
       } 
}

运行结果

冒泡排序



10.掌握正数、负数的原码,反码,补码是如何进行二进制存储的。

  1. 正数的原码,反码,补码都是一样的
  2. 负数的原码等于对应正数的原码符号位取反
  3. 负数的反码等于原码符号位不变其他位取反
  4. 补码等于反码加一


11.在Java中什么是类,什么是对象,类和对象之间有什么关系。

  1. 类:描述一类对象的行为和状态
  2. 对象:是类的实例 现实中具体的事物
  3. 关系:简单来说类是对象的类型 对象是类的实例


12.什么是构造函数,构造函数是如何定义的。

定义:特殊的构造函数,定义方法为函数名与类名相同

作用:一般用来初始化成员属性和成员方法


区别 构造函数 一般函数
运行 对象已建立就开始运行 对象建立以后开始调用才会开始运行
几次 一个对象建立,,构造函数只运行一次 可以被对象调用多次


13.如何理解在java中的栈地址和堆地址,其中类中的属性是如何存放的。


例如:


Dog dog=new Dog();

申明了对象dog是Dog里面的


此时堆地址就是 new Dog( ) 属性在对用的函数里面



14.假设有一个类(Student),请解释 Student s=new Student()的含义.



含义: 新建一个对象s是 属于学生类里面



15.如何区分变量的定义,它们又是如何跟static进行结合调用的。

  1. 类变量:定义在类中,方法外的变量,使用修饰符

    static

    ,作用域整个类,在方法中可以直接输出。

  2. 实例变量:定义在类中,方法外的变量,作用于整个类中,但是在方法中必须实例化对象 然后才可以输出,不能直接输出

  3. 局部变量:定义在方法中,只有在方法中有用

  4. 静态变量是可以直接用类来调用的 也可以实例化对象去调用

    例如:

    
    
    //圆形类
    
    public class Ball {
    
    public double radius;//圆的半径
    
    static double PI=3.141956;//圆周率
    
    public static void main(String[] args) {
    
    // TODO Auto-generated method stub
    
    Ball b1=new Ball();//创建第一个圆形对象
    
    Ball b2=new Ball();//创建第二个圆形对象
    
    Ball.PI=3.141596;//静态变量赋值
    
    b1.radius=5;//给第一个圆形的半径赋值
    
    b2.radius=8;//给第一个圆形的半径赋值
    
    System.out.println("第一个圆形对象的圆周率:"+b1·PI+" "+"半径为:"+b1·radius);//打印第一个圆形的圆周率和半径
    
    System.out.println("第二个圆形对象的圆周率:"+b2·PI+" "+"半径为:"+b2·radius);//打印第二个圆形的圆周率和半径
    
    }
    
    }
    
    //输出的结果是:
    
    //第一个圆形对象的圆周率:3.141956 半径为:5.0
    
    //第二个圆形对象的圆周率:3.141956 半径为:8.0
    
    //上面的代码中,在Ball类中定义了一个静态变量PI,用来表示圆周率它是作为所有实例的所共享,因为这个圆周率(PI)是静态变量可以直接使用Ball.PI的方式调用,也可以使用实例化对象调用,b1.PI。第一个圆形对象和第二个圆形对象的PI属性均为3.141596。
    
    
  5. 静态方法是可以直接用类调用的

    例子:

    //3.怎么使用静态方法
    
    public class Ball01 {
    
    public double radius;//圆的半径
    
    public static double PI=3.141596;//圆周率
    
    //角度转径度
    
    public static double toRadius(double angdeg){
    
    return angdeg*(Ball01·PI/180);
    
    }
    
    public static void main(String[] args) {
    
    // TODO Auto-generated method stub
    
    //Ball01 b1=new Ball01();//创建一个圆的对象
    
    System.out.print(Ball01.toRadius(100));//调用对象的静态方法
    
    }
    
    }
    
    //输出的结果是:
    
    //1.745331111111111
    
    //在上面代码中,在Ball01类定义了一个静态的方法toRadius()角度转径度,通过对象实例化调用对象的静态方法。一个静态方法只能访问static修饰的成员,因为没有被static修饰的成员首先需要创建对象才能访问,而在静态方法调用可以不用创建对象。
    
    


1.在Java中经常用的块有4块,除去同步代码块还有哪些,它们的优先级是如何的,又是如何调用的。

static{}>main{}>构造函数



17.在Java中如何定义方法,方法又是如何进行调用的,有static和没有static有什么区别。

  1. 有static是静态方法



    可以用类去调用也可以用实例化对象去调用

  2. 没有static修饰是非静态方法



    只能使用实例化对象去调用



18.如 student s=new Student(),其中s是有名对象,那么new Student()为匿名对象,解释匿名对象的使用规则。


1.有对象是可以多次调用的

 public static void main(String[] args) {
         Phone phone=new Phone();
         phone.price=200;
         phone.showPrice();
         phone.price=420;
         phone.showPrice();
    }
}
class Phone{
    double price;
    public void showPrice(){
        System.out.println("手机价格"+price);
    }

在这里插入图片描述


结果


2.如果是匿名对象

(输出结果不一样)

  public static void main(String[] args) {
         new Phone().price=500;
         new Phone().showPrice();//0.0

    }
     phone.showPrice();
}

}

class Phone{


double price;

public void showPrice(){


System.out.println(“手机价格”+price);

}


>[外链图片转存中...(img-zUAPtiC6-1657789436636)]
>
>**结果**

**2.如果是匿名对象**(输出结果不一样)

```java
  public static void main(String[] args) {
         new Phone().price=500;
         new Phone().showPrice();//0.0

    }

在这里插入图片描述



版权声明:本文为weixin_51419477原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。