首页技术文章正文

技术贴【黑马java培训】

更新时间:2019年07月26日 11时08分21秒 来源:黑马程序员论坛

注释

1.单行注释
//
2.多行注释
/*
*/
3.*文档注释


关键字

被JAVA赋予特殊含义的单词。特点:
1.都是小写字母
2.有特殊颜色
保留字

GOTO CONST

常量:// 在运行阶段 不会发生变化

1.字符串常量
System.out.println("helloworld");//两个双引号之间的部分 System.out.println("黑马程序员");
2.整数常量
System.out.println(666); System.out.println(-28);
3.小数常量
4.字符常量
System.out.println('A');//单引号内有且仅有一个字符 可以为空
5.布尔常量 true false
6.空常量 null
Java数据类型
基本数据类型
四类八型
整数类 :byte (1) short(2) int(4) long(8)
//byte(-128-127) int 21亿
浮点数 :float(4) double(8)
布尔 (1)
字符 0-65535
//long类型 8421码 float ieee码
变量:定义不能重载(加H,L)
标识符
大驼峰(第一个大写)(类的命名),小驼峰(首字母小写)newWorld(变量,方法名)



数据类型转换
1.自动转换
int+byte=int
byte、short、char 运算时直接提升为 int
2.强制转换
问题:
1.数据丢失
2.数据溢出

ASCII编码
0:48
9:57
A: 65
Z: 90
a: 97
z: 122
运算符
算术:+ - * / % ++ --


           int a = 1;     int b = ++a;
i++ :变量a自己加1,将加1后的结果赋值给b,也就是说a先计算。a和b的结果都是2。

           int a = 1;     int b = a++;
++i: 变量a先把自己的值1,赋值给变量b,此时变量b的值就是1,变量a自己再加1。a的结果是2,b 的结果是1。


赋值:= , += , -=,*=,/=,%=
比较:==,>= , <= , != , > , <
逻辑:&&(短路与左边False,右边不管) , || (短路或左边Ture,右边就不管),%,|

字符串相加
1. 前加      
20+100+“字符串”=120“字符串”
2. 后加      
“字符串”+20+100 = “字符串“20120



数据输入
1.导包
import java.util.scanner;//在定义类前 (public class xxx)
2.创建对象
Scanner sc = new Scanner(System.in);
3.接受数据
Int xxx = sc.nextInt(); byte xxx = sc.nextbyte(); String xxx = sc.nextline();


switch

/System.out.println() = sout;
/public static void main (String[] args){}     快捷键psvm;


格式:

switch(表达式){
case1:语句体1;
break;
case2:语句体2;
break;
...
default:语句体n+1;
break//break可以忽略;}
case穿透

switch(表达式){
case3:
case4:
case5:System.out.ptintln("春季");break;
case6:
case7:
case8:System.out.ptintln("夏季");break;
default:break;
}
注意:表达式的值能用哪些:byte  short int char String 枚举  /从当前匹配的数据开始执行,知道遇到下一个break;/

CASE可乱序,但是从上到下进行匹配,直到遇到Break;

if...else与Switch主要区别:
1.if...else的功能大于SWITCH
2.if...else的比较过程比较繁琐 SWITCH底层会创建一个跳表直接匹配 效率高,弊端:创建跳表需要消耗时间和空间。
循环结构

组成部分:
①初始化语句  //只执行一次
②条件判断语句  //返回值为true才能进行
③循环体语句
④条件控制语句

for语句 :
    for(初始化语句;条件判断语句;条件控制语句){
                     循环体语句;
}


//5.for(x.for  )idea的快捷键
//math.pow(ge,3)  立方

while语句:
基本格式:
//①初始化语句;
wihle(②条件判断){
③循环体;

}

for 与While 的使用:
明确循环次数For,不明确范围用While.
       for与WHILE的条件控制的作用域不同
       死循环:
                    for(;;){}
                    while(true){}

do...while:
①初始化语句;
do{③循环体;
④条件控制语句;
}while(②条件判断;)
//第一次执行无需判断

循环跳转语句:
continue:跳过本次循环,进入下次循环
break:直接结束整个For/while 循环


九九乘法表

for(inti=1;i<=9;i++){//行
for(intj=1;j<=i;j++){//列
System.out.print(i+"X"+j+"="+(i*j)+"\t");
}
System.out.println();//Line换行=print("n")
}
制表符"\t"


随机数Random
用法:                                                                                                     //类比Scanner
1.导包                                                                                                   1.导包
import java.util.Random;                                                                     import java.util.S           
2.创建对象
Random r = new Random;
3.调用方法
int num = r.nextInt(bound:x);//0-x   i<x
随机验证码

Randomnum=newRandom();
for(inti=0;i<5;i++){
intx=num.nextInt(26)+97;
System.out.print((char)x+"\t");
}//5个小写验证码


Scannercs=newScanner(System.in);
Randomr=newRandom();
intnum=r.nextInt(100)+1;
System.out.println("请输入要猜的数字");
intguessnum=cs.nextInt();
while(guessnum!=num){
if(guessnum>num){
System.out.println("大了");
}elseif(guessnum<num){
System.out.println("小了");
}
guessnum=cs.nextInt();
if(guessnum==num){
System.out.println("猜对了");
}
//猜数字

方法(函数:代码块)

定义:
public static void 方法名(){                     //public static void method(){}
//方法体:代码块}
调用:
方法名();   //      method();


带参数的方法定义和调用

public static void 方法名(参数1){
           方法体;}
public static void 方法名(参数1,参数2,参数3){
           方法体;}

//范例: public static void getMax(int num1,int num2){
                                         ...}
带返回值的定义和调用
public static boolean isEvenNumber(int number){
                return true;}
public static int get max(int number){
                return 100;}
//方法不能嵌套定义
//void 类型可以省略return;  也可以单独加return;后面不加数据类型
通用类型
public static 返回值类型 方法名(参数) {
方法体;
return 数据 ;
}


方法重载//函数重载,形参不一样,函数名一样,顺序不一样;

方法的参数传递

基本数据类型的参数,形式参数的改变,不影响实际参数
形参是地址(数组名)会改变

//引用值
publicstaticvoidmain(String[]args){
int[]arr={10,20,30};
System.out.println("调用change方法前:"+arr[1]);//调用change方法前:100
change(arr);
System.out.println("调用change方法后:"+arr[1]);//调用change方法后:200
}
publicstaticvoidchange(int[]arr){
arr[1]=200;
}
//基本参数
publicstaticvoidmain(String[]args){
intnumber=100;
System.out.println("调用change方法前:"+number);
number=change(number);
System.out.println("调用change方法后:"+number);
}
publicstaticintchange(intnumber){
number=200;
returnnumber;
}

类和对象

类:
类是对象的数据类型
lei是具有相同属性和行为的一组对象的集合


类{
成员{属性};
方法;
}

属性:
对象具有的各种特征,每个对象的每个属性都具有特定的值
行为:
对象能执行的操作。

类使用样例:

classStudent{
//成员变量
Stringname;
intage;
//成员方法
publicvoidstudy(){
System.out.println("好好学习,天天向上");
}
publicvoiddoHomework(){
System.out.println("键盘敲烂,月薪过万");
}
}
学生测试类
*/
publicclassStudentDemo{
publicstaticvoidmain(String[]args){
//创建对象
Students=newStudent();
//使用对象
System.out.println(s.name+","+s.age);
s.name="林青霞";
s.age=30;
System.out.println(s.name+","+s.age);
s.study();
s.doHomework();
}
}
成员变量和局部变量

类中位置不同:成员变量在类中方法外,局部变量在方法内;
内存位置不同:成员变量(堆内存),局部变量(栈内存)  //见数组
生命周期不同:成员变量:与对象伴生   ;局部变量:随方法的调用而诞生,调用完消失
初始化值不同:成员变量:有默认初始化值;局部变量没有默认初始化值,先定义赋值再使用



封装


private 关键字

被private修饰的成员,只能在本类进行访问,针对private修饰的成员变量,如果需要被其他类使用,提供相应的操作。
1.提供“get变量名()”方法,用于获取成员变量的值,方法用public修饰
2.提供“set变量名(参数)”方法,用于设置成员变量的值,方法用public修饰

this 关键字

this修饰的变量用于指代成员变量,其主要作用是(区分局部变量和成员变量的重名问题)
方法的形参如果与成员变量同名,不带this修饰的变量指的是形参,而不是成员变量
方法的形参没有与成员变量同名,不带this修饰的变量指的是成员变量
构造方法

结构:   
           public class 类名{
                            修饰符 类名( 参数 ) {
                                        }
                                            }
         构造方法和类名一致,可重载
标准类制作

classStudent{
//成员变量
privateStringname;
privateintage;
//构造方法
publicStudent(){
}
publicStudent(Stringname,intage){
this.name=name;
this.age=age;
}
//成员方法
publicvoidsetName(Stringname){
this.name=name;
}
publicStringgetName(){
returnname;
}
publicvoidsetAge(intage){
this.age=age;
}
publicintgetAge(){
returnage;
}
publicvoidshow(){
System.out.println(name+","+age);
}
}
/*
创建对象并为其成员变量赋值的两种方式
1:无参构造方法创建对象后使用setXxx()赋值
2:使用带参构造方法直接创建带有属性值的对象
*/
publicclassStudentDemo{
publicstaticvoidmain(String[]args){
//无参构造方法创建对象后使用setXxx()赋值
Students1=newStudent();
s1.setName("林青霞");
s1.setAge(30);
s1.show();
//使用带参构造方法直接创建带有属性值的对象
Students2=newStudent("林青霞",30);
s2.show();
}
}

推荐了解热门学科

java培训 Python人工智能 Web前端培训 PHP培训
区块链培训 影视制作培训 C++培训 产品经理培训
UI设计培训 新媒体培训 产品经理培训 Linux运维
大数据培训 智能机器人软件开发




传智播客是一家致力于培养高素质软件开发人才的科技公司“黑马程序员”是传智播客旗下高端IT教育品牌。自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研3个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,针对性地出版了计算机系列教材50多册,制作教学视频数+套,发表各类技术文章数百篇。

传智播客从未停止思考

传智播客副总裁毕向东在2019IT培训行业变革大会提到,“传智播客意识到企业的用人需求已经从初级程序员升级到中高级程序员,具备多领域、多行业项目经验的人才成为企业用人的首选。”

中级程序员和初级程序员的差别在哪里?
项目经验。毕向东表示,“中级程序员和初级程序员最大的差别在于中级程序员比初级程序员多了三四年的工作经验,从而多出了更多的项目经验。“为此,传智播客研究院引进曾在知名IT企业如阿里、IBM就职的高级技术专家,集中研发面向中高级程序员的课程,用以满足企业用人需求,尽快补全IT行业所需的人才缺口。

何为中高级程序员课程?

传智播客进行了定义。中高级程序员课程,是在当前主流的初级程序员课程的基础上,增加多领域多行业的含金量项目,从技术的广度和深度上进行拓展“我们希望用5年的时间,打造上百个高含金量的项目,覆盖主流的32个行业。”传智播客课程研发总监于洋表示。




黑马程序员热门视频教程【点击播放】

Python入门教程完整版(懂中文就能学会) 零起点打开Java世界的大门
C++| 匠心之作 从0到1入门学编程 PHP|零基础入门开发者编程核心技术
Web前端入门教程_Web前端html+css+JavaScript 软件测试入门到精通


在线咨询 我要报名
和我们在线交谈!