写的比较仓促,主要是给自己看的,注重于代码的实践而非理论的叙述
语言的表达上稍有欠缺,并且我懒得修改
我更关注数据结构模块代码的优化,使其更聚焦于算法实现本身
而不是冗杂的总和功能实现(考研需要,孩子毕竟能力有限)
Java在理论上的抽象未必容易理解,而

实践是检验真理的唯一标准

启封の章节 · 摸鱼

极光 · Java · 常用书写学习

1.注意类型自进化情况
byte/short/char--->int---->long---->float---->double
        2.二进制0b 八进制0 十进制直接写 十六进制0x   开头

/*
import java.util.*;
import java.lang.*;
import java.io.*;
import java.text.*;class ASRC {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int a = sc.nextInt();System.out.printf("%d", a);}}*/  //ASRC - 极光框架import java.util.*;
import java.lang.*;
import java.io.*;
import java.text.*;class ASRC {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int a = sc.nextInt();System.out.printf("%d", a);}}

输入输出测试


import java.util.Scanner;public class ASRC {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String a = sc.nextLine();//空格捕获String b = sc.next();//无法捕获空格int c = sc.nextByte();double d = sc.nextDouble();float f = sc.nextFloat();System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);System.out.println(f);}
}

数组遍历测试

import java.util.Scanner;public class ASRC {public static void main(String[] args) {//内层main可以小写Scanner sc = new Scanner(System.in);//输入启动前置int[] a = {1, 2745, 3322, 4, 5257, 6, 7};for (int x : a)System.out.printf("%d ",x);}
}

第十二周

1.关于&& 与 &
                A.前者被称作短路与,如果第一条件不成立直接跳出不执行第二条件
例如:第二条件中有i++的话就不会被执行到
        面向对象class属性+方法构造方式  (内部参数+void动作
                A.构造方法:内嵌同名class,允许不返回数值,用于初始化
                B.父类继承、接口调用 启章;内存销毁操作
                C.修饰符作用:限定块的访问权限

char转int型(unicode)

import java.util.*;
import java.text.*;
import java.lang.*;class ASRC {public static void main(String[] args) {Scanner sc = new Scanner(System.in);char t = sc.next().charAt(0);System.out.printf("%d", (int) t);}}

第十三周

子类、父类与继承

子类:在父类的基础上进行拓展,拥有父类的方法论,可以修改替代父类的方法论
        父类:会传递变量和方法给子类,数据上有无继承关系需要测试
        继承:extend [父类名]
另外,不是所有的变量、方法论都会被继承;看父类权限部署
        子类的权限只能比父类更宽松

权限论
子类 所有类
public 1 1 1 1
protected 1 1 1
default 1 1
private 1

1.子类-父类转化规则

        [父类] = new [子类]  可以的,倒过来不行

2.类型探测 instanceof 

返回true false;父类引用(父类=new 子类)的探测,既是子类又是父类

3.多态性

静态多态:overload重载,同名但是参数不同(类型,或参数数量)

动态多态:override覆盖,子类通过引用方式赋值给父类(动作重写?)

4.接口

interface 定义一系列(抽象的)动作
        如果某个class要implement,那么他需要实现这个接口中的所有动作
        让这些·动作·都不再 抽象
        接口中的数据都以常量存储(并集成继承)【变相的父类继承】

祖始类:java.lang.Object

注意事项

main是独特的方法论,可以被放在任何类中
        如果在类中【直接调用】类中的方法论,对方必须是static类型
        会导致不利影响;main最好独立书写

第十四周

知识概览

一、pack import 
                1.package xxxxx   后面的包名称或可用 . 作为分隔,体现层次性;允许超长名称
                2.通过import进行引入,但是要注意
            import java.lang.* 是对lang下【首层子类】进行引入,更深层次的子类需要另外imoprt
        二、四大关键字   【final 终态常量】 【static 静态】 【abstract 抽象类】 【this 实例本体】
                1. abstract【抽象类】
                        A.修饰class下属的方法,因为太抽象了、所以不能给出具体的方法
                        B.作为父类被引用,具体方法论在子类用同名方法中加以实现(覆盖后)
                依然可以保留抽象性(如果子类的实现方法依旧是抽象的话)
                        C.接口的属性总是抽象的,你不写也是抽象的
                        D.关于抽象父类
                                a.内部方法论似乎也是要用abstract定义
                                b.方法论多采用public,因为需要被子类调用并具体化实现
                        
不会真的有小憨批部署private吧!不会吧不会吧
                2.static【静态类】
                        A.修饰内部类?
                        B.ASRC测试报告:静态类似乎是与【类】捆绑的
                一个类
的静态变量,对于所有同类的变量单元,都可以访问并且修改
                        C.对静态成员的操作,必须也是静态的状态?
                        D.静态成员变量只能用类名访问

import java.util.*;
import java.text.*;
import java.lang.*;class book {static int num;book() {num = 0;}public void add() {num++;}
}class ASRC {public static void main(String[] args) {Scanner sc = new Scanner(System.in);book a=new book();book b=new book();book c=new book();a.add();a.add();b.add();c.add();System.out.printf("%d",book.num);}
}

3.final【终章常量类】
                        A.申明时,即刻赋值,作为常量不更变,不可(被用于)修饰抽象类型
                        B.修饰【方法论】时        候,方法论作为父类被子类调用,子类无权修改或覆盖
                        C.修饰【静态成员域】,立即赋值
                        D.修饰【非静态成员域】,构造方法赋值,只能赋值一次
        三、接口论
                1 .关于【抽象类】和【接口】的区别与联系 的思考

1.抽象类
  A.抽象类是针对父类无法给出具体方法的情况下使用,定义一种抽象共有的属性,等待子类引用时由子类具体实现
        比如定义宠物会叫,但是每种宠物叫声是不一样的,所以printf暂时不动,等待明确子类是猫猫狗狗才知道叫声
  B.对父类宠物动作引用时,会被下沉到调用具体的子类动物动作
比如定义父类宠物,子类猫猫,定义父类a=new猫猫,那么调用父类叫声的动作,实际上就下沉调用了猫叫
  C.抽象类是用来继承的,抽象方法是等待被继承后重写的,不能new出实例
  D.父类中可以固定一些通用方法为final,这样不会被子类覆盖
  E.抽象类的本质是【父类具有的公共属性】,实践上需要由【子类调用具体化】

2.interface接口
  A.满足一定的【规范】才可以【耦合】;模块之间的耦合?
Java接口:定义多个类之间共同的【行为规范】
  B.视作一种特殊的抽象类,没有构造方法,不能实例化
成员域都是常量,定义时候就需要赋值,可以引用父接口
方法无具体实现,访问限制均定义为public(JDK8后可以有更多的限制权限选择)
  C.示例?
  D.一个类可以有多个【接口】(规范),调用接口规范的话,就要对其所有方法加以实现    
多个无关的类可以实现同一个接口
比如:显卡可以启动终止,汽车也可以启动终止
  E.借用接口可以实现多继承(多个接口、多个规范标准)
  F.实现了对应接口的对象,可以通过接口进行访问

3.区别与联系
        A.联系是二者都体现了【子类/具有接口的子类】具有的一定公共属性,都可以通过【父类/接口】来访问【子类/实现接口的子类】
        B.区别是,抽象类作为父类调用只能搞一个,接口作为一种规范标准一个子类可以调用多个接口满足多个标准;接口的方法需要全部实现抽象继承可以保留一些抽象方法不予以实现,让二级子类去实现

ASRC-接口标准创建测试


interface Base {//接口定义-基本动作void start();//作为多个类之间的【规范】void stop();
}class LookCard implements Base {public String name;public LookCard() {name = "苍穹之翼";}public void start() {System.out.printf("长虹显卡启动!");}public void stop() {System.out.printf("长虹显卡启动关闭!");}
}
class Car implements Base {public String name;public Car() {name = "黎明之翼";}public void start() {System.out.printf("汽车启动!");}public void stop() {System.out.printf("汽车爆胎!");}
}
/*【变量-->成员域】* 【非静态方法】访问【非静态变量】:a或this.a* 【非静态方法】访问【静态变量】:a或this.a或book.a(book类名)* 【静态方法】访问【静态变量】:a或book.a* 【静态方法】访问【非静态变量】:创建实例对象后通过对象访问* 方法论的访问 和 成员域的访问 类似* */
/** 静态变量可以被非静态的动作修改* 但不能被非静态的动作访问* 比如show动作如果是static 那么只能访问外区num和本区id,不能访问 外区域的ID* 如果去除static,那就可以访问外区ID,但是要加上this.id 来表示是外区ID* 因为内区也有个叫ID的变量(一般很少这样用,不会有哪个SB内外区ID写一个变量名称)* 太SB了* */

MD终于来作业了!作业分析报告

1.JDK: java开发工具 (java Development Kit)
        JRE: java 运行环境 java Runtime Environment
        JVM: java 虚拟机 java Vritual Machine
        JDK包含JRE,JRE包含JVM

2.  子类重写的方法不可以拥有比父类方法更加严格的访问权限

3.类中定义了一个有参的构造方法,系统不会再提供无参的构造方法

4.Java的Object类没有父类,也称作【顶级父类】【祖始类】

5.接口的运用我们更关注方法,其成员变量将作为常数被调动,不存在【构造方法】

6.scanner next()不能捕获带有空格的字符串,nextLine可以捕获带空格的字符串

7.接口可以被 private 或 protected 修饰符修饰

8.子类视作父类的【拓展】而非【子集】

9.方法重载,方法名称相同,参数不同

10.非抽象的父类的子类也可以是抽象的

11.接口是抽象类,抽象类是不可以继承接口的、

12.接口被编译为独立的字节码文件

7-3 设计一个银行业务类

import java.util.Scanner;class Bank {public static String BankName;//银行名称private String name, password;//用户名+密码private double money;Bank() {BankName = "中国银行";money = 0;}public void create(String t1, String t2) {name = t1;password = t2;money = 0;//呜呜好穷啊}public static void welcome() {System.out.printf("%s欢迎您的到来!\n", BankName);}public static void welcome2() {System.out.printf("请收好您的证件和物品,欢迎您下次光临!\n");}public void deposit(String t, double m) {if (t.equals(password)) {money += m;System.out.printf("您的余额有%.1f元。\n", money);} else {System.out.printf("您的密码错误!\n");}}public void withdraw(String t, double m) {if (t.equals(password) && money >= m) {//密码正确+可以取出money -= m;System.out.printf("请取走钞票,您的余额还有%.1f元。\n", money);} else if (t.equals(password) && money < m) {System.out.printf("您的余额不足!\n");} else {System.out.printf("您的密码错误!\n");}}
}//【主函数调动区域】
public class ASRC {//极光·科研中心public static void main(String[] args) {Scanner sc = new Scanner(System.in);String t1, t2;double t3;Bank China = new Bank();//开户啦啦啦啦啦China.welcome();t1 = sc.next();t2 = sc.next();China.create(t1, t2);//正确密码+存钱t1 = sc.next();t3 = sc.nextDouble();China.deposit(t1, t3);//错误密码+取钱t1 = sc.next();t3 = sc.nextDouble();China.withdraw(t1, t3);//正确密码+可以取钱t1 = sc.next();t3 = sc.nextDouble();China.withdraw(t1, t3);//正确密码+不可以取钱t1 = sc.next();t3 = sc.nextDouble();China.withdraw(t1, t3);//告辞China.welcome2();}
}

6-2 动物自我介绍  静态动作调用

        优势,调用父类animal,可以适应输入为子类的情况

import java.util.Scanner;public class Main {public static void main(String args[]) {Scanner s = new Scanner(System.in);int i = s.nextInt();//先读入 小猫还是小狗												

Java · PTA探险之旅相关推荐

  1. 从高考到程序员:我的程序探险之旅

    就在今天下午,湖南省教育考试院公布了 2017 年湖南省普通高等学校招生全国统一考试的卷面成绩,我的微信也瞬间被各种分段统计表和喜报刷屏,每年的这个时候总是几家欢喜几家愁.六年前的 6 月 25 日, ...

  2. F#探险之旅(三):命令式编程(上)

    F#系列随笔索引页面 在本系列的第二部分(函数式编程上.中.下)中,我们了解了如何使用F#进行纯粹的函数式编程.但是在一些情况下,比如I/O,几乎不能避免改变状态,也就是说会带来side effect ...

  3. java多线程并发之旅-34-性能与可伸缩性

    概述 编写正确的程序很难,而编写正确的并发程序则难上加难.与串行程序相比,在并发程序中存在更多容易出错的地方. 那么,为什么还要编写并发程序? 线程是Java语言中不可或缺的重要功能,它们能使复杂的异 ...

  4. java多线程并发之旅-09-java 生产者消费者 Producer/Consumer 模式

    生产者消费者模式 在实际的软件开发过程中,经常会碰到如下场景:某个模块负责产生数据,这些数据由另一个模块来负责处理(此处的模块是广义的,可以是类.函数.线程.进程等).产生数据的模块,就形象地称为生产 ...

  5. 【从零开始的Java秃头之旅】03

    从零开始的Java秃头之旅之Java篇 这几天主要学习了Java当中的异常这一概念,直接看图 java.lang.Throwable类是java语言中所有错误或异常的超类(父类),其主要可以分为两类: ...

  6. Java PTA题目——Chapter 3 Selections

    Java PTA题目--Chapter 3 Selections 7-1 Convert Celsius to Fahrenheit(摄氏温度转换为华氏温度) Write a program that ...

  7. java多线程并发之旅-20-同步工具类。闭锁/栅栏/信号量/阻塞队列/FutureTask

    同步工具类 同步工具类主要包括闭锁(如CountDownLatch),栅栏(如CyclicBarrier),信号量(如Semaphore)和阻塞队列(如LinkedBlockingQueue)等: F ...

  8. java探险,Java 探险之旅 (0)

    Andy 合上电脑,摘下眼镜,揉了揉疲惫的双眼,倒头栽在了床上... ... "欢迎来到 Java 世界!从现在开始,你就是一名 Java 初级武士了,接下来的 Java 学习之旅不是安逸的 ...

  9. 一名Java大佬跳槽之旅,离开京东,14面面试经验和收获

    2019年,打算离开京东,换个地方,然后开始了跳槽之旅. 先和boss们打了招呼,然后请假专心面试,2周内请假了6天左右时间,敲定了offer. 然后交接了2周,离开了我大京东. 一.面试情况 1.商 ...

最新文章

  1. JPPhotoBrowserDemo--微信朋友圈浏览图片
  2. 深度学习多变量时间序列预测:卷积神经网络(CNN)算法构建时间序列多变量模型预测交通流量+代码实战
  3. 软文:第三方支付技术的场景应用,支付技术延伸与国际化
  4. 计算机类农学类牧医类,考生注意!2017年高考报考类别确定
  5. vue项目统一响应_vue中使用$set实现深入响应式原理
  6. leetcode809. 情感丰富的文字
  7. linux下使用c进行线程操作
  8. [转]NopCommerce 多数据库方案
  9. 【TensorFlow-windows】(四) CNN(卷积神经网络)进行手写数字识别(mnist)
  10. 关于VS2005安装项目制作的三个参考文章链接
  11. 婚纱摄影五大标杆品牌告诉你,客资转化居然可以这么玩?
  12. 2022中山大学计算机技术专硕考研初试、复试经验帖
  13. matlab模拟静电场边值,静电场边值问题有限差分法的仿真分析
  14. 最全名企笔试题+算法题
  15. c语言的area的用法,area的用法说明
  16. python爬虫篇,零基础学爬虫之精华版
  17. 腾讯云服务器备案要多久?腾讯云小程序备案流程
  18. 解决方案:h5网页外部浏览器唤起微信分享,唤起微信面板,分享朋友圈方案,兼容大部分浏览器
  19. 爱我,是不是因为怜悯
  20. OEA 扩展属性系统 - 主要设计类图

热门文章

  1. cas113995-55-4/花菁染料1,1,2-三甲基-1H-苯并吲哚-7-磺酸
  2. [Shader] Shader Cookbook 创建你的第一个着色器[1]
  3. 74 ----平面直角坐标变换: 平移、旋转、伸缩
  4. ASP.NET Core 3.x 学习笔记(7)——Blazor
  5. python12306源码_春运了,Python大神分享爬取12306车票信息的例子,附抢票源码
  6. 【操作系统】3.进程管理
  7. 求二叉树根节点到叶节点的所有路径
  8. 安超云生态 | 安超云与数科网维联合推出“医疗全场景档案云共享解决方案”
  9. 【信号系统实验2】MATLAB—连续时间信号与系统的频域分析
  10. mysql workbench安装教程_MySql可视化工具MySQL Workbench使用教程