JAVA基础
JAVA基础
small_py_trade
这个作者很懒,什么都没留下…
展开
-
super关键字
super和this一样只能出现在构造和实例函数中,不能用在静态方法。super()只能出现在子类构造函数第一行,初始化父类的一些特征。父类如果有构造方法无参,子类默认调用super(),父类如果没有无参构造,子类必须有个带参数的super方法。this()和super()不能共存,都只能出现在构造函数第一行。比如说public C(){this(1);}public C(int a){super();}这里面this(1)会去调用第二个构造函数,然后就会super转载 2021-12-04 16:13:12 · 41 阅读 · 0 评论 -
访问控制权限修饰符
指pubilc protected private 缺省protected在同包下和子类能够访问,缺省的只能在同包下访问。原创 2021-12-03 19:48:44 · 61 阅读 · 0 评论 -
final关键字
final修饰的类无法继承,方法无法覆盖,变量一旦赋值后无法更改。实例变量用final修饰后必须赋值,不能用默认值。或者使用构造方法赋值。被final修饰的引用不能改变其存储的地址,只能一直指向一个对象。一般情况下常量的定义: static final 为修饰符,变量名要大写,单词间用下划线连接。...原创 2021-12-03 19:12:26 · 64 阅读 · 0 评论 -
多态
向下转型和向上转型: 向上指子类到父类,向下指父类到子类(要加强制类转换符)多态机制: Animal A=new cat();Animal是cat的父类。这是子类转换为父类,就是向上转换,允许使用。 编译阶段A的数据类型是Aniaml,编译通过,字节码中有相应的方法,称这个过程为静态绑定。但是在JVM中真实创建的是cat对象,调用的方法也是cat里面的方法。这称为动态绑定。这种现象父类型引用指向子类型对象,这种机制导致了编译和运行阶段绑定的不同,这...原创 2021-12-02 21:18:22 · 48 阅读 · 0 评论 -
继承和方法覆盖
语法格式: {修饰符列表} class 类名 extends 父亲名{ 类名=属性 +方法}java中只能继承一个类,被继承的称为父类、基类、superclass,继承的称为子类、派生类、suboclass。private修饰的不能被继承。java.lang.object是所有类默认继承的方法覆盖即子类将父类中方法重写,返回值,方法名,参数列表必须一样。访问权限不能更低,可以更高。public,protected,private.所有私...原创 2021-12-02 20:12:01 · 190 阅读 · 0 评论 -
static 关键字
比如一个Chinese的类,里面一个变量国籍需要所有这个类的对象都是一样的,这个变量就可以设成静态变量。它在类加载的时候就初始化,存在方法区中,用类名.变量名访问,用引用.访问也可以(不推荐)。static修饰的代码都在类加载时候执行,只执行一次。static{语句}称为静态代码块,可以在类加载的时候就可以进行数据的准备等一些工作。{}称为实例代码块,就是在对象加载的时候才用。...原创 2021-12-02 19:27:16 · 42 阅读 · 0 评论 -
this关键字
this是一个引用变量,其中保存了指向自身的地址,this在堆内存中的类内部this位置示意图:没有static关键字的方法称为实例变量,同样没有static的变量称为实例变量。当一个动作需要对象参与,就不要定义为static。this可以出现在实例方法中,表示正在执行这个方法的对象。有static就要用类名.方法名调用,这种方法执行时候不需要对象,而且访问不了实例对象,因为没有引用。但是可以在static的方法中new一个对象,然后使用这个对象。因为主函数一般前面都有static,所以主函转载 2021-12-02 18:55:55 · 41 阅读 · 0 评论 -
参数传递
如:public static void main(String[] args) { students A=new students(5); add(A); } public static void add(students s) { System.out.println("年龄"+s.getAge()); }在这里面A是引用,存储了创建的堆内存中的对象的地址,在调用add函数的时候,这个地址传给了局部变量s,都是指向的同一个对象。...原创 2021-12-02 09:21:33 · 75 阅读 · 0 评论 -
构造方法
构造方法用来创建对象,初始化实例对象的内存空间。语法结构 (修饰符列表) 构造方法名(形参列表){ 构造方法体;}跟普通方法比,没有返回值类型,方法名必须和类名一致,通过调用构造方法,可以创建对象。调用: new 构造方法(实参列表)构造方法执行后返回的是对象在堆内存中的地址。如果不自己定义方法,系统给一个无参数的构造方法,叫缺省构造器。如果定义了,默认的就无效。构造方法还可以定义多个,传入参数可以不一样。...原创 2021-11-30 21:35:18 · 142 阅读 · 0 评论 -
面向对象封装性
属性前加private修饰,只有在这个类里面才能访问。如果外部要访问该属性,通过set()方法改变属性,get()方法读取属性。语法如下: public void set属性名首字母大写(){} public void get属性首字母大写(){}写完属性后右键source里面选generate getters and setters自动生成这两个函数有了这两个函数就可以在访问和修改时进行安全过滤。static: 有stati...原创 2021-11-30 20:58:07 · 47 阅读 · 0 评论 -
myeclipse
工作区: eclipse开始的时候要选工作区,.class文件就在这个工作区可以找到 要开一个新的对话就要对应一个新的工作区.metadata: 存储了当前myeclipse的工作状态,文件夹如果删除了,下一次进入会全新开始。/* crrl+d删除一行,alt+/自动补全* ctrl+s保存* ctrl+1自动纠错*/...原创 2021-11-30 20:42:47 · 138 阅读 · 0 评论 -
java的类和对象的存储
类的修饰符 class 类名 {}属性描述对象状态信息,属性在类中用变量描述,方法描述对象动作信息。由于变量在方法体外,类里面,所以是成员变量。要访问这个属性必须先创建对象,不能通过类去访问,所以又叫实例变量。对象又称为实例,实例对象又叫对象变量。成员变量没有赋值情况下的默认值;java中所有类都属于引用数据类型,不是基本类型int、short这些。对象的创建和使用: 实例化对象:new 类名() new在JVM的堆内存中开辟新的内存,类加载时.cla...转载 2021-11-29 20:06:23 · 1085 阅读 · 0 评论 -
方法重载机制
比如以下两种方法:public static int sum(int a,int b){return a+b;}public static double sum(double a,double b){return a+b;}这两种方法功能相同,就是传入参数类型不一样,可以用同一个名字,让传参不同就行。这叫方法重载。方法重载只跟方法名和传入参数列表有关。...原创 2021-11-28 20:13:26 · 74 阅读 · 0 评论 -
循环语句
for循环: for (初始化表达式;布尔表达式;更新表达式){java 语句循环体}三个表达式都不是必须的,但是两个分号必须写原创 2021-11-27 19:45:25 · 196 阅读 · 0 评论 -
switch语句
switch(int或String类型的变量或字面值){caseint或String类型的变量或字面值 java语句; 。。。 breakcaseint或String类型的变量或字面值 java语句; 。。。 breakdefault: java语句;}所以case语句如果都不成功,转到defaultbyte,short,char因为可以转换成int,可以直接写到case和s...原创 2021-11-26 20:14:17 · 119 阅读 · 0 评论 -
键盘输入
第一步:创建键盘扫描对象java.util.scanner s=new java.util.Scanner(System.in);第二步:调用scanner对象的next()方法开始接收用户键盘输入用户输入的信息会赋给你创立的字符串,用nextInt()方法可以输入数字String userinput=s.next();然后就可以使用userinput,就是存储的输入内容...原创 2021-11-25 20:51:45 · 76 阅读 · 0 评论 -
if 语句
语法结构有四种:1, if(布尔表达式){java语句}2, if(布尔表达式){java语句} else{java语句}3,if(布尔表达式){java语句}else if(布尔表达式){java语句n}4,就是上一个后面加else...原创 2021-11-25 19:43:35 · 46 阅读 · 0 评论 -
字符串连接运算符和三元运算符
+还可以做字符的连接运算,当它两边只要有一个字符串,一定会进行连接,连接后为一个新的字符串。如:System.out.println(10+29+"10");输出102910原创 2021-11-25 17:10:35 · 414 阅读 · 0 评论 -
赋值类运算符
如: byte x=10;x=x+10;//编译不通过x+=10;//编译通过,这个相当于x=(byte)(x+10)扩展类的赋值运算符不改变数据类型原创 2021-11-25 16:45:33 · 67 阅读 · 0 评论 -
逻辑运算符
& | ! ^ 与 或 非 异或&& 短路与||短路或逻辑运算的对象和结果必须是布尔类型短路与或和逻辑与或结果是相同的,但是有短路现象例如说int x=10;int y=8;System.out.println( false & ++x <y);System.out.println(x);输出x是11int x=10;int y=8;System.out.println( false && ++x &...原创 2021-11-25 16:10:07 · 88 阅读 · 0 评论 -
关系运算符
> >= < <= == !=关系符的运算结果一定是布尔变量。原创 2021-11-25 15:50:12 · 37 阅读 · 0 评论 -
算术运算符
+ - * / % ++ --加小括号提升运算优先级++和--可以在变量前,也可以在变量后int a=b++和 int a=++ b一个是先赋值再加一,一个是先加一再赋值原创 2021-11-25 15:46:22 · 40 阅读 · 0 评论 -
布尔型数据变量和数据转换规则
boolean型数据变量只有true和false。除boolean类型外其他类型都可以互相转换。小容量向大容量转换,顺序:byte<short<int<long<float<doublechar 和short同级,但是因为char没有负的,所以可取的正数更多不同类型相运算时,先都转成整数,再赋值...原创 2021-10-14 20:40:09 · 594 阅读 · 0 评论 -
浮点数精度类型
float4个字节double8个字节java中小数是默认的double类型的字面值,如果赋给float类型就是大容量给小容量,需要强制转换:float f=5.12f.原创 2021-10-14 20:12:29 · 55 阅读 · 0 评论 -
整数型数据类型
java特点:一个整数是先当作int类型量处理,再赋值给变量。三种字面值:十进制缺省默认,八进制以0开始,十六进制以0x开始把int 类型赋值给long类型,存在数值转换。但小容量可以自动转换为大容量,大容量转换成小容量需要加强制类型转换符(对byte、short、char类型而言,不超过其范围的可以直接赋给它),但这样可能造成严重的精度损失。转换的时候就是把二进制高位的数据砍掉。long z=2147483648;这句是错的,因为数值超过了int类型,所有数值都是先当作int类型处理的,原创 2021-10-14 19:35:45 · 161 阅读 · 0 评论 -
字符及转义
例如:char c='l';''表示字符,""表示字符串System.out.println()表示输出后换行,System.out.print()表示输出之后不换行\n为换行符,\t为制表符,要输出\字符再加一个\要让'或者"变成普通的双引号也加\...原创 2021-10-12 20:31:02 · 66 阅读 · 0 评论 -
数据类型
short 和 char是一样的,但是char没有负的,所以表示两倍的整数。成员变量没有赋值系统会赋默认值,局部变量不会。原创 2021-10-12 18:29:03 · 48 阅读 · 0 评论 -
变量
变量指内存中的一块空间,有数据类型、名字、字面值,是存储数据最基本的单元。变量在java中必须先赋值才能使用变量的作用域:不能出大括号比如for (j=0;j<10;j++){}这个j变量仅局限于for循环之内。变量分为局部变量或成员变量(全局变量),分别在方法内或方法外体内定义。...原创 2021-10-10 19:14:40 · 46 阅读 · 0 评论 -
类的定义
一个源文件中可以定义多个class,编译后就生成几个class文件public class是可以没有的,有的话只能有一个,而且名称必须与源文件相同每个class都可以写主方法main,都可以作为程序入口,用java 类运行,但是没有main函数不能运行...原创 2021-10-09 09:54:34 · 36 阅读 · 0 评论 -
常用DOS命令
exit:退出窗口cls:清除窗口dir:列出当前目录下的子目录/文件cd +目录的路径:改变路径(路径包括了相对和绝对路径,比如Desktop对C:\Users\Administrator\就是相对路径)原创 2021-10-08 20:34:40 · 51 阅读 · 0 评论