Java基础
文章平均质量分 66
Java跨平台的纯面向对象的语言
java语言的特性:①面向对象性 ②健壮性 ③跨平台性
毕富国
这个作者很懒,什么都没留下…
展开
-
Objects and Classes 面向对象编程OOP
第五章: Objects and Classes 一. OOP中的基本概念 Java的编程语言是面向对象的,采用这种语言进行编程称为面向对象编程(Object-Oriented Programming, OOP), 它允许 设计者将面向对象设计实现为一个可运行的系统。Java的编程单位是类,对象最后要通过类进行实例化(即“创建”)。 面向对象编程有三个特性: ...原创 2018-08-02 19:02:14 · 281 阅读 · 0 评论 -
OOP面向对象编程二
六. this关键字 在方法调用、参数传递过程中,极有可能出现参数名称与实例变量名同时的情况。在一个方法内,可以定义和成员变量同名的局部变量或参数,此时成员变量被屏蔽。 参考例子:Student.java。 作用1:区别成员变量和局部变量public class Student{ private String name; public void se...原创 2018-08-02 19:03:06 · 141 阅读 · 0 评论 -
OOP面向对象编程三
十一. 数据隐藏 这里说说的数据主要指的是类中的属性 如何对属性进行隐藏呢? 在前面封装的属性前面用private修饰,表示该属性不能被其它类访问和修改,它只能被本类访问和修改,范围限制在本类内。 java中封装有两个方面: 属性的封装 方法的封装十二. 封装 1.对属性的封装 首先属性可以被一...原创 2018-08-03 08:55:35 · 155 阅读 · 0 评论 -
OOP面向对象编程四
十六. super关键字 1. 为什么要使用super关键字? 1)子类中要访问父类方法或变量。 2) 子类中调用父类的构造器 2. 使用注意事项: a. 只能在构造方法或实例方法内使用super关键字,在静态方法和静态代码块内不能使用super关键字。 b. 在子类构造方法中如没有使用this关键字,会隐式调用父类的...原创 2018-08-03 08:55:47 · 153 阅读 · 0 评论 -
static关键字
1.static:静态的,可以用来修饰属性、方法、*代码块(或初始化块)、*内部类2.static修饰属性(类变量): * 1.由类创建的所有的对象,都共用这一个属性 * 2.当其中一个对象对此属性进行修改,会导致其他对象对此属性的一个调用。vs 实例变量(非static修饰的属性,各个对象各自拥有一套副本) * 3.类变量随着类的加载而加载的,而且独一份 * 4.静态的变量可以直接...原创 2018-08-04 18:39:36 · 163 阅读 · 0 评论 -
23种设计模式-单例模式:
23种设计模式单例模式:解决的问题:如何只让设计的类只能创建一个对象如何实现:饿汉式 & 懒汉式//饿汉式1class Bank{ //1.私有化构造器 private Bank(){} //2.创建类的对象,同时设置为private的,通过公共的来调用,体现封装性 //4.要求此对象也为static的 private static ...原创 2018-08-04 18:40:22 · 228 阅读 · 0 评论 -
mian()方法;代码块
mian()方法public static void main(String[] args){ //方法体 }//1.main()是一个方法,是主方法,为程序的入口//2.权限修饰符:public protected 缺省 private ---面向对象的封装性//3.对于方法来讲:static final abstract //4.方法的返回值:void / ...原创 2018-08-04 18:42:05 · 1857 阅读 · 0 评论 -
final关键字
final:最终的 ,可以用来修饰类、属性、方法1.final修饰类:这个类就不能被继承。如:String类、StringBuffer类、System类2.final修饰方法:不能被重写。如:Object类的getClass() 3.final修饰属性:此属性就是一个常量,一旦初始化后,不可再被赋值。习惯上,常量用大写字符表示。此常量在哪里赋值:①此常量不能使用默认初始化 ②可以显式的赋...原创 2018-08-04 18:42:45 · 221 阅读 · 0 评论 -
抽象abstract
重点!abstract:抽象的,可以用来修饰类、方法 * 1.abstract修饰类:抽象类 * 1)不可被实例化 * 2)抽象类有构造器 (凡是类都有构造器) * 3)抽象方法所在的类,一定是抽象类。 * 4)抽象类中可以没有抽象方法。 * >当我们设计一个类,不需要创建此类的实例时候,就可以考虑将其设置为抽象的,由其子类实现这个类的抽象方法以后,就行实例化 * *...原创 2018-08-04 18:43:49 · 149 阅读 · 0 评论 -
接口(interface)、接口的应用:工厂方法的设计模式 、代理模式(静态代理)
* 接口(interface) 是与类并行的一个概念 * 1.接口可以看做是一个特殊的抽象类。是常量与抽象方法的一个集合,不能包含变量、一般的方法。 * 2.接口是没有构造器的。 * 3.接口定义的就是一种功能。此功能可以被类所实现(implements)。 * 比如:class CC extends DD implements AA * 4.实现接口的类,必须要重写其中的所有的抽象...原创 2018-08-04 18:47:01 · 254 阅读 · 0 评论 -
类的第5个成员:内部类
* 类的第5个成员:内部类 * 1.相当于说,我们可以在类的内部再定义类。外面的类:外部类。里面定义的类:内部类 * 2.内部类的分类:成员内部类(声明在类内部且方法外的) vs 局部内部类(声明在类的方法里) * 3.成员内部类: * 3.1是外部类的一个成员:①可以有修饰符(4个)②static final ③可以调用外部类的属性、方法 * ...原创 2018-08-04 18:47:41 · 387 阅读 · 0 评论 -
求1000以内的完全数
求1000以内的完全数若一个自然数,恰好与除去它本身以外的一切因数的和相等,这种数叫做完全数。例如,6=1+2+328=1+2+4+7+14496=1+2+4+8+16+31+62+124先计算所选取的整数a(a的取值1~1000)的因数,将各因数累加于m,若m等于a,则可确认a为完全数public class Perfect { public void perfect(int ...原创 2018-08-02 08:58:06 · 9827 阅读 · 1 评论 -
corejava———第四章: Array
数组的创建和使用------------------------------------------------------------第四章: Array数组是指一组数据的集合,数组中的每个数据称为元素。在Java中,数组也是Java对象。数组中的元素可以是任意类型(包括基本类型和引用类),但同一个数组里只能存放类型相同的元素。创建数组大致包括如下步骤: . 声明一个数组...原创 2018-08-02 08:57:58 · 177 阅读 · 0 评论 -
写ArrayMultipy.java,使用数组,在数组元素中保存1到10,然后将所有数组元素相乘并输出结果。
写ArrayMultipy.java,使用数组,在数组元素中保存1到10,然后将所有数组元素相乘并输出结果。 public class ArrayMultipy { int array[]=new int[10]; public int[] save() { for(int i=0;i<array.length;i++) { array[i]=i+1; } re...原创 2018-08-02 09:35:17 · 2943 阅读 · 0 评论 -
选择排序
选择排序:在要排序的一组数中,选出最小的一个数与第一个位置的数交换;然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。import java.util.Arrays;public class Selection { public int[] selection(int array[]) { for(int i=0;i<array...原创 2018-08-02 10:14:27 · 308 阅读 · 0 评论 -
面试题 经典算法 冒泡排序
冒泡排序:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。Bubble.javaimport java.util.Arrays;public class Bubble { public int[] bubble(int[] arr...原创 2018-08-02 10:37:49 · 755 阅读 · 0 评论 -
插入排序
插入排序排序过程的某一中间时刻,数组R被划分成两个子区间R[1..i-1](已排好序的有序区)和R[i..n](当前未排序的部分,可称无序区)。插入排序的基本操作是将当前无序区的第1个记录R[i]插人到有序区R[1..i-1]中适当的位置上,使R[1..i]变为新的有序区。因为这种方法每次使有序区增加1个记录,通常称增量法。插入排序与打扑克时整理手上的牌非常类似。摸来的第1张牌无须整理...原创 2018-08-02 11:20:06 · 141 阅读 · 0 评论 -
数组练习
任务1:创建两个int类型的数组array1和array2,使用{}将array1初始化为8个质数:2,3,5,7,11,13,17和19,显示array1的内容。任务2:赋值array2=array1,修改array2中的偶索引元素,使其等于索引值,显示array1中的内容,看看有什么变化。import java.util.Arrays;public class Array12 ...原创 2018-08-02 11:46:59 · 663 阅读 · 0 评论 -
二维数组练习
1、创建一个称作Array2D 的类,在main()方法中声明一个称作twoD的变量,类型为int二维数组,第一维长度为4。2、创建一个元素类型为int的数组,该数组应包括4 个元素并被赋值到变量twoD[0]。3、编写两个嵌套for()循环语句以打印twoD 的全部值,以矩阵的格式输出。4、编译并运行程序。是不是发现此时出现了运行错误(空指针异常),这是因为twoD[1]至twoD...原创 2018-08-02 12:04:22 · 1152 阅读 · 0 评论 -
项目:在线图书商城(多商户) B:C
项目:在线图书商城(多商户) B:C项目(软件)开发的流程 可行性分析 经济可行性 技术可行性 社会可行性 需求分析 如何去做需求分析? 思路:考虑项目开发完成之后有哪几类用户?找每一类用户当中的 代表人物(熟悉业务、有想法)去了解需求:谈 用UML当中...原创 2018-08-01 10:08:52 · 1627 阅读 · 0 评论 -
以二进制形式输出一个十进制数 利用for循环和移位以及&运算
以二进制形式输出一个十进制数利用for循环和移位以及&运算 import java.util.Scanner;public class ToBinary { private int number; public void setNumber(int number) { this.number=number; } public int getNumber() {...原创 2018-08-01 11:31:27 · 1402 阅读 · 0 评论 -
写LoopTest.java, 分别使用while/do/for循环实现1x2x...x10。
写LoopTest.java,分别使用while/do/for循环实现1x2x...x10。public class LoopTest { public void whileTest(){ int i =1; while(i<10) { System.out.print(i+"X"); i++; } System.out.println(i); } ...原创 2018-08-01 11:32:59 · 1038 阅读 · 0 评论 -
创建一个阶乘应用程序Factor.java 功能:一个数X 的阶乘(通常记作X!)等于X*(X-1)*(X-2)*.....*1。例如4!等于4×3×2×1=24。
创建一个阶乘应用程序Factor.java功能:一个数X 的阶乘(通常记作X!)等于X*(X-1)*(X-2)*.....*1。例如4!等于4×3×2×1=24。public class Factor { public void factor(int num) { int sum = 1; for(int i=num;i>0;i--) { sum*=i; } ...原创 2018-08-01 11:34:25 · 1552 阅读 · 0 评论 -
打印出四种形式的九九乘法表
1、System.out.println()的功能为输出+换行 System.out.print()的功能为输出2、在适当的位置可以使用'\t'进行对齐操作3、注意类似于1*1= 1的式子的等号后面是有空格的 类似于2*9=18的式子的等号后面是没有空格的,目的是让它们对齐看起来美观形式1:1*1= 11*2= 2 2*2= 41*3= 3 2*3= 6 3*3=...原创 2018-08-01 11:39:19 · 7004 阅读 · 0 评论 -
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。
题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。public class Digit { public void digit() { int count=0; for (int i = 1; i <= 4; i++) { f...原创 2018-08-01 11:45:31 · 1200 阅读 · 0 评论 -
判断101-200之间有多少个素数,并输出所有素数。 只能被1和它本身整除的自然数为素数(质数)
判断101-200之间有多少个素数,并输出所有素数。只能被1和它本身整除的自然数为素数(质数)public class Prime { public void prime(int m,int n) { int count=0; for(;m<n;m++) { boolean isPrime=true; for(int i=2;i<Math.sqrt(m);...原创 2018-08-01 11:49:10 · 3593 阅读 · 1 评论 -
打印出所有的“水仙花数”
public class Flower { public void flower() { for(int i=100;i<1000;i++) { if(i==Math.pow(i/100, 3)+Math.pow(i%100, 3)+Math.pow((i/10)%10, 3)) { System.out.println(i); } } } public ...原创 2018-08-01 11:50:10 · 516 阅读 · 0 评论 -
将一个正整数分解质因数
将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。对n进行分解质因数,应先找到一个最小的质数i,然后按下述步骤完成: a)如果这个质数恰等于n,则说明分解质因数的过程已经结束, 打印出即可。 b) 如果n不等于i,i能被n整除,则应打印出i的值, 并用n除以i的商,作为新的正整数n,重复执行第一步。 提示:如果一个自然数能写成两个自然...原创 2018-08-01 11:51:34 · 12407 阅读 · 0 评论 -
求任意两个正整数的最大公约数和(GCD)和最小公倍数(LCM)
求任意两个正整数的最大公约数和(GCD)和最小公倍数(LCM)辗转相除法的算法为:首先将 m除以 n(m>n)得余数 r,再用余数 r 去除原来的除数,得新的余数,重复此过程直到余数为 0时停止,此时的除数就是m 和 n的最大公约数。 求 m和 n的最小公倍数: m和 n的积除以(m和 n 的最大公约数)。public class GcdLcm { public void...原创 2018-08-01 11:52:24 · 7258 阅读 · 0 评论 -
Java语言概述
1.软件 : 系统软件 vs 应用软件2.人与计算机做交互:使用计算机语言。 图形化界面 vs 命令行方式 常用的DOS命令:dir : 列出当前目录下的文件以及文件夹md : 创建目录rd : 删除目录cd : 进入指定目录 cd.. 退回到上一级目录cd\: 退回到根目录d...原创 2018-07-20 18:24:57 · 364 阅读 · 0 评论 -
Java基本语法
关键字:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)保留字:byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const 标识符:凡是自己可以起名字的地方都叫标识符命名的规则:(一定要遵守,不遵守就会报编译的错误)由26个英文字母大小写,0-9 ,_或 $ 组成 ...原创 2018-07-21 12:37:13 · 490 阅读 · 2 评论 -
【面试】交换两个数的三种方式
交换两个数的三种方式方法一:提供一个临时变量。 temp=m; m=n; n=temp;方法二:先将两个数加在一起 m=m+n; n=m-n; m=m-n; 当m和n较大时,有可能出现精度失准方法三:采用异或算法 m=m^n; ...原创 2018-07-22 18:28:29 · 332 阅读 · 0 评论 -
Java基本语法(二)
流程控制1.顺序结构 >程序从上往下的顺序执行2.分支结构: if-else switch-case3.循环结构: while(){} do{}while() for(;;){}分支结构1.条件判断:①if(条件表达式){ }②if(条件表达式){ //执行的语句1; }else{ //执行的语句2; ...原创 2018-07-24 20:26:38 · 141 阅读 · 0 评论 -
Java基础 —— 操作符;条件语句;循环语句; 变量
目标: 1. 操作符; 2. 条件语句; 3. 循环语句; 4. 变量----------------------------------------------1.java中变量的介绍 程序的基本功能是处理数据 程序用变量来接收并表示数据; 程序中必须先定义变量才能使用; 定义变量...原创 2018-07-30 19:28:49 · 270 阅读 · 0 评论 -
将一个数转换为16进制,不使用系统库函数
import java.util.Scanner;public class to16 { public static void main(String[] args) { //将一个数转换为16进制 Scanner s=new Scanner(System.in); System.out.println("请输入一个整数:"); int i=s.nextInt...原创 2018-07-24 20:30:26 · 642 阅读 · 0 评论 -
数组
数组:相同数据类型的数据的组合。如: int score1 = 72; int score2 = 90; int score3 = 59;使用数组:1.数组的初始化 int[] scores1 = new int[]{72,90,59};//静态初始化:在声明并初始化数组与给数组相应的元素赋值操作同时进行。 int scores2[] = ...原创 2018-07-25 19:37:51 · 186 阅读 · 0 评论 -
Linux下的Java
申明一个临时的环境变量(只在单前打开的终端有效) export 变量名=变量值 环境变量的调用echo $变量名 查看命令所处的位置which 命令关键字 e.g.: which ls - -> /bin/ls echo $PATH 查看单前系统的所有命令存放的位置注意:操作的命令都是基于PATH找到的 PS1=‘用户名’ 设置用户在终端显示的名字 exp...原创 2018-07-26 17:07:38 · 988 阅读 · 0 评论 -
Linux配置jdk
Oracle官网下载linux版jdk配置jdk,linux下的配置方式 1找到jdk的位置 sudo tar -xzvf jdk-8u91-linux-x64.tar.gz -C /opt 2.给/opt下的jdk建快捷方式(链接文件), cd /opt sudo ln -s jdk1.8.0_91 jdk 3.回到家目录,打开.bashrc cd ~ vi...原创 2018-07-26 17:09:23 · 185 阅读 · 0 评论 -
jdk bin目录下部分命令作用
1、java.exe:======================运行java程序,这个相信每一位用Java的人知道了。2、javac.exe:======================编译的Java程序,生成.class文件3、javaw.exe:======================功能:跟java命令相对的,可以运行.class文件,主要用来执行图形界面的j...原创 2018-07-26 17:12:59 · 2461 阅读 · 0 评论 -
Java历史
1991年4月,由James Gosling博士领导的绿色计划(Green Project)开始启动,此计划的目的是开发一种能够在各种消费性电子产品(如机顶盒、冰箱、收音机等)上运行的程序架构。这个计划的产品就是Java语言的前身:Oak(橡树)。Oak当时在消费品市场上并不算成功,但随着1995年互联网潮流的兴起,Oak迅速找到了最适合自己发展的市场定位并蜕变成为Java语言。1995年5...原创 2018-07-26 17:13:32 · 409 阅读 · 0 评论