IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java期末复习(仅供参考!!!) -> 正文阅读

[Java知识库]Java期末复习(仅供参考!!!)

简答题

一、 开发Java应用程序的主要步骤

  1. 写一个源文件:写Java代码,保存为后缀为 .java 的文件。
  2. 编译源文件:用命令行 javac 类名.java 。编译后生成对应的 .class 字节码文件。
  3. 运行:命令行:java 类名

二、 关于变量在不同位置的有效性

(1)局部变量:

  • 形参(方法签名中定义的变量):作用域为在整个方法内。当类或对象调用某个方法时,系统会在该方法栈区为所有形参分配内存空间,并将实参的值赋给对应形参,这样就完成了形参的初始化。

  • 方法局部变量作用域为定义该变量的位置到方法结束。

  • 代码块局部变量作用域为定义该变量的位置到代码块结束。

除了形参外,局部变量都必须进行显式初始化

(2)成员变量:

  • 类变量(被 static 关键字修饰): 作用域与这个 类 的生存周期相同
  • 实例变量作用域与这个 实例(对象) 的生存周期相同。

成员变量与局部变量和名字相同时,成员变量会被隐藏起来,如果还想要使用成员变量,可以用 this.变量名 来调用变量。

三、类方法与实例方法

类方法:
类中被 static 修饰的方法,即可以通过类名直接调用,也可以通过实例名调用。类方法内只能调用类变量。

实例方法:
类中没有被 static 修饰的方法,只能通过实例名调用。实例方法中既可以调用类变量,也可以调用实列变量。

四、面向对象的三大特性

封装:也称为信息隐藏,是将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。

继承:基于已存在的类构造一个新类。

多态:多态分为方法的多态(即方法重载)与继承的多态。
方法的多态即:相同的方法名,传给它不同数量或者不同类型的参数,会产生不同的行为。(方法重载)
继承的多态:不同的对象调用同一个方法会产生不同的行为。(向上转型)

五、内部类与外嵌类的区别

定义在一个类内部的类叫内部类,包含内部类的类称为外嵌类
内部类分为普通内部类,静态内部类,匿名内部类,局部内部类。

六、String类常用方法

返回类型       方法名                    作用

boolean       equals(String str)        判断两个字符串的内容是否一模一样

int        	  length()                  得到该字符串的字符个数

boolean       startsWith(String str)    判断一个字符串是否以指定的内容开头

boolean       endsWith(String str)      判断一个字符串是否以指定的内容结尾

String        toUpperCase()             将一个字符串全部转换成大写

String        toLowerCase()             将一个字符串全部转换成小写


equals方法非常重要!!!

七、String 、StringBuffer 、 StringBuilder 三者区别

String 对象代表一个字符序列不可变的字符串。

StringBuffer 对象代表一个字符序列可变的字符串。线程安全

StringBuilder 对象代表一个字符序列可变的字符串。线程不安全

(具体解释:String 、StringBuffer 、 StringBuilder 三者区别

八、子类与父类不在同一包中的继承性

子类与父类不在同一包中,子类只能继承父类中被 publicprotected 修饰的成员变量与方法。
子类所继承的成员变量和方法的访问权限是不变的;

九、抽象类与抽象方法

抽象类:
(1)抽象类只能作为其他类的基类,它不能直接实例化,对抽象类不能使用new 操作符。
(2)抽象类中可以包含抽象成员,但非抽象类中不可以。
(3)如果一个非抽象类从抽象类中派生,则其必须通过覆盖来实现所有继承而来的抽象成员。

抽象方法:
(1)抽象方法必须声明在抽象类或接口中。
(2)抽象方法只声明了一个新方法,但不提供该方法的实现,由于抽象方法不提供任何实际实现,因此抽象方法没有方法体。
(3)声明抽象方法时,不能使用 static 和 private 修饰符。
(4)当从抽象类派生一个非抽象类时,需要在非抽象类中重写抽象方法,以提供具体的实现。

编程题:

1.要求写出 num 以内的完数。

public class WanShu {
    public static void main(String[] args) {
        WanShu ws = new WanShu();
        ws.getWanShu(1000);
    }
    void getWanShu(int num) {
        for(int i = 2 ;i<num; i++) {
            int sum = 0;
            for(int j = 1;j<i;j++) {
                if(i%j==0) sum += j;
            }
            if(sum == i) System.out.println(sum);
        }
    }
}

2.用面向对象的方法生成 矩形/三角形/梯形类。

(1)矩形类

class Rectangle {
    double height,width;
    Rectangle(double height,double width) { //构造器
        this.height = height;
        this.width = width;
    }
    double getArea() {
        return height * width;
    }
}

(2)三角形类

class Triangle {
    double a,b,c;
    Triangle(double side1,double side2,double side3) { //构造器
        a = side1;
        b = side2;
        c = side3;
    }
    void getArea() {
        if((a+b>c || a+c>b || b+c>a)&&a!=0&&b!=0&&c!=0) {
            double p = (a+b+c)/2;
            System.out.println(Math.sqrt(p*(p-a)*(p-b)*(p-c)));
        }
        else
            System.out.println("不能构成三角形,无法求面积");
    }
}

(3)梯形类

class Trapezoid {
    double above,bottom,height;
    Trapezoid(double above,double bottom,double height) { //构造器
        this.above = above; //上底
        this.bottom = bottom; //下底
        this.height = height; //高
    }
    double getArea() {
        return (above + bottom) * height /2.0;
    }
}

3.IO流(A卷不考第十章,也就是说不考IO流)
复制文件(这只是个示例,考试不一定是这个题,后续再补充)

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Main {
    public static void main(String args[]) {
        int b = 0;
        try {
            FileInputStream in = new FileInputStream("d:\\QQQ.txt"); //读
            FileOutputStream out = new FileOutputStream("d:\\PPP.txt"); //写
            while ((b = in.read())!=-1) {
                out.write(b);
            }
            in.close();
            out.close();
        } catch (FileNotFoundException f) {
            f.printStackTrace();
            System.out.println("找不到指定文件");
            System.exit(-1);
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("文件复制错误");
            System.exit(-1);
        }
        System.out.println("文件已复制");
    }
}

4.生成n个随机数,分别输出大于num与小于num的数的个数。

import java.util.Random;

public class RandomTest {
    int count;
    RandomTest(int n) {
        count = n;
    }
    void random(int num) {
        Random r = new Random();
        int big = 0,small = 0;
        for(int i = 0;i<count;i++) {
            if(r.nextInt(10)>num) big++;
            else small++;
        }
        System.out.println("大于"+num+"的数的个数为:"+big+"\n小于"+num+"的数的个数为:"+small);
    }
}

5.GUI

重点:
布局:GridLayout
多个标签:Lable
多个文本框:JTextField

import javax.swing.*;
import java.awt.*;

public class TestFrame {
    public static void main(String[] args) {
        JFrame window = new JFrame("注册账号");//参数为窗口名字
        window.setSize(200,100);//设置窗口大小
        window.setLocationRelativeTo(null);//设置窗口居中显示
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置点击窗口关闭图标后,窗口所在程序结束
        window.setLayout(new GridLayout(3,2,3,3));//设置网格布局 :3行2列
        //依次添加以下组件
        window.add(new Label("name:"));
        window.add(new JTextField());
        window.add(new Label("sex:"));
        window.add(new JTextField());
        window.add(new Label("password:"));
        window.add(new JTextField());
        window.setVisible(true);//设置窗口可见
    }
}

效果:
在这里插入图片描述

6.求圆面积(ZHI NENG画的重点)
在这里插入图片描述

public class TestCircle {

    private double radius;
    private double area;
    TestCircle(double r) {//构造方法
        radius = r;
    }
    public double getRadius() {//get半径
        return radius;
    }

    public void setRadius(double radius) {//set半径
        this.radius = radius;
    }

    public double getArea() {//get面积
        area = Math.PI*radius*radius;
        return area;
    }
}

public class TestAA {
    public static void main(String[] args) {
        TestCircle tc = new TestCircle(5);
        System.out.format("半径为 %f 的圆的面积为: %.3f",tc.getRadius(),tc.getArea());//输出格式控制
    }
}

7.求圆锥体积
版本1(特点:涉及对象之间的组合)

public class Circle {
    private double radius;//半径
    private double area;//面积
    Circle(double r) {
        radius = r;
    }
    double getRadius() {
        return radius;
    }
    double getArea() {
        area = Math.PI * radius * radius;
        return area;
    }
}

public class Circular {
    Circle circle;//一个底面圆对象
    private double volume;//体积
    private double height;//圆锥的高
    Circular(Circle c,double h) {//构造器
        circle = c;
        height = h;
    }
    public double getVolume() {//求体积
        volume = circle.getArea()*height/3;
        return volume;
    }
}

import java.util.Scanner;

public class TestC {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请依次输入:圆锥底面圆的半径 圆锥的高");
        double r = sc.nextDouble();
        double h = sc.nextDouble();
        Circle circle = new Circle(r);
        Circular circular = new Circular(circle,h);
        System.out.format("该圆锥体积: %.3f",circular.getVolume());//保留3位小数
    }
}


//结果:
请依次输入:圆锥底面圆的半径 圆锥的高
3 5
该圆锥体积: 47.124
Process finished with exit code 0

版本2(特点:面向接口编程)

interface  GetArea {
    public abstract double getArea();//求面积的方法
}

interface GetVolume {
    public abstract double getVolume();//求体积的方法
}

public class CircleT implements GetArea{
    private double radius;
    private double area;
    CircleT(double radius) {
        this.radius = radius;
    }
    public double getArea() {
        area = Math.PI*radius*radius;
        return area;
    }
}

public class CircularT implements GetVolume,GetArea{
    private double height;
    private double volume;
    CircleT circleT;
    CircularT(double r,double h) {
        circleT = new CircleT(r);
        height = h;
    }
    public double getVolume() {
        volume = circleT.getArea()*height/3;
        return volume;
    }
    public double getArea() {
        return circleT.getArea();
    }
}

public class TestCC {
    public static void main(String[] args) {
        CircleT circleT = new CircleT(5);
        CircularT circularT = new CircularT(6,10);
        System.out.format("半径为5的圆的面积为:%.3f\n\n",circleT.getArea());
        System.out.format("底面圆半径为6,高为10的圆锥的\n体积:%.3f\n底面圆面积:%.3f\n",circularT.getArea(),circularT.getVolume());
    }
}


//结果:
半径为5的圆的面积为:78.540

底面圆半径为6,高为10的圆锥的
体积:113.097
底面圆面积:376.991

Process finished with exit code 0

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-16 11:08:15  更:2021-07-16 11:09:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 16:24:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码