JAVA入门

JAVA 基础概念

 10-标识符

定义:给类,方法,变量等起的名字。

小驼峰命名法:方法、变量

规范一:标识符是一个单词的时候,全部小写

规范二:标识符由多个单词组成的时候,第一个单词首字母小写,其它单词首字母大写

大驼峰命名法:类名

规范一:标识符是一个单词的时候,首字母大写

规范二:标识符由多个单词组成的时候,每个单词的首字母大写。

11-键盘录入(scanner)

导包-创建对象-接收数据

导包- import java.utill.Scanner;

创建对象-Scanner sc =new Scanner(System.in);   只有sc是变量名可以变

接收数据-int i =sc.nextInt();   只有i是变量名可以变

12.IDEA

项目-模块-包-类

psvm    sout

运算符

1.算术运算符(加\减\乘\除\取模)

整数除整数得数是整数

小数参与运算结果可能不精确

2.隐式转换和强制转换

隐式转换(小变大)   小byte-short-int-long-float-double大

规则:取值范围小的和取值范围大的运算,小的先提升成大的,在进行运算

        byte short char三种类型的数据在运算的时候,会提升成int,然后再运算

强制转换(大变小)

格式:目标数据类型 变量名=(目标数据类型) 被强转的数据;

3.字符串相加---拼接
4.字符相加(Ascll码)

字符+字符

字符+数字

5.自增自减运算符++;--;
6.赋值运算符

= ;+=;-=;*=;/=;%=;

a+=b   a=a+b

7.关系运算符

==  !=   >  >=  <   <=

8.四种逻辑运算符

&与  两边都为真结果才为真

|或   两边都为假结果才为假

!非

^异或  相同取false,不同为true

9.短路逻辑运算符(&&  ||)

先看第一个,再看第二个(效率低),短路运算符---提高效率

10.三元运算符(判断并根据判断的内容得到不同的结果)

关系表达式? 表达式1:表达式2;

true-输出表达式1

false-输出表达式2

11.运算符的优先级
12.原码、反码、补码

判断和循环(逻辑控制语句)

//顺序结构、分支结构、循环结构

一、顺序结构

二、分支结构

1.if语句---用于判断

第一种格式:

if(关系表达式){ 语句体; }

第二种格式:

if(关系表达式){ 语句体1;}

  else{语句体2;}

第三种格式:

if(关系表达式){语句体1;}

    else if(关系表达式){语句体2;}

            else{语句体3;}

2.switch语句

格式:

switch(表达式){

case 值1:语句体1;

                 break;

case 值2:语句体2;

                 break;

……

default:

语句体;

break;

}

其他知识点:

defauit的位置和省略

case穿透

switch新颖性

三、循环语句

//for 、while 、do while

(1)for循环

格式:

for(int i=1;i<+10;i++){

system.out.printin("helloworld");

}

(2)while循环

格式:

while(条件判断语句){

       循环体语句;

      条件控制语句;

}

四、练习

数组

01.数组的概述和静态初始化

变量一次只能存一个数,数组一次可以存储同种类型的多个数(考虑隐式转换)

1.定义:

格式一:数据类型  [  ]   数组名

     例:int [  ]   array

格式二:数据类型  数组名  [  ]

     例:int array  [  ]

2.数组的静态初始化

初始化:内存中,为数组容器开辟空间,并将数据存入容器中的过程。

完整格式:数据类型 [ ] 数组名=new 数据类型 [ ] {元素1,元素2……};

简写格式:数据类型 [ ] 数组名={元素1,元素2……};

创建完毕之后数组的长度就固定了。

02.数组的地址值和元素访问

地址值

数组元素的访问

格式:数组名 [索引];

计算机从0开始,不是从1开始(01234)

//如何获取数组中的数

格式:数组名[索引]

//把数据存储到数组中

格式:数组名[索引]=具体的数/变量

arr[1]=200;

03.数组的遍历

将数组中所有的内容取出来,取出来之后可以(打印、求和、判断……)

//开始条件:0
//结束条件(最大索引):数组的长度-1
for(int i=0;i<5;i++){system.out.print()arr[i];}

在java当中,关于数组的一个长度属性:length

调用方式:数组名.length

例子:system.out.printin(arr.length)

idea快捷:arr(数组名).for.i

03.数组动态初始化

动态初始化:初始化时只指定数组的长度,由系统为数组分配初始值。

格式:数据类型[] 数组名=new 数据类型[数组长度];

string[]arr=new string [50];
arr[0]="zhangsan";
arr[1]="lisi";

数组默认初始化值的规律:

整数类型:默认初始化0

小数类型:默认初始化0.0

字符类型:

boolean:false

引用数据类型:默认初始化值 null

数组常见操作

(1)求最值

//定义数组
int [] arr={33,5,22,44,55};
//定义一个max认为是最大的,临时认为第一个数是最大的
int max=arr[0];

//循环获取数组中的元素,并和max进行比较
for(int i=0;i<arr.length;i++){
         if(max<arr[i]){max=arr[i];
}
}
//循环结束后,max记录的最大值
system.out.printin(max);

max初始化的值一定是数组中的数

(2)求和并统计数据

int[] arr=new int[10];
//把随机数存到数组中
Random r=new random();
for(int i=0;i<arr.length;i++){
int number =r.nextInt(bound:100)+1;
arr[i]=number;

}
//求和
int sum=0;
for(int j=0;j<arr.length;j++){
     sum+=arr[j];
}
system.out.printin("数组的和为"+sum);
//求平均数
int avg=sum/arr.length;
system.out.printin(avg)

3.交换数据

//实现首尾交换
int[]arr={1,2,3,4,5};
for(int i=0,j=arrlrngth-1;i<j;i++,j--){
int temp=arr[i];
 arr[i]=arr[j];
 arr[j]=temp;
}

4.打乱数组中的数据

int[]arr={1,2,3,4,5};
Random r=new Random;
for(int i=0;i<arr.length;i++){
int number=r.nextint(arr.length)
int temp=arr[i];
 arr[number]=arr[i];
 arr[number]=temp;
}
for(int i=0;i<arr.length;i++){
system.out.printin(arr[i]);
}
04.数组的内存图

栈、堆、方法区、本地方法栈、寄存器

方法

01.什么是方法

方法是程序中最小的执行单元

相同代码进行打包,减少代码的重复性

02.方法的打包和调用
最简单的方法的定义和调用

格式:public static void 方法名(){

方法体(就是打包起来的代码);

}

调用:方法名()

代码执行过程:看到方法进入方法,方法完毕回到调用处继续程序

public static void main(string[] args){
 

  getSum();


}
public static void getSum(){
int a=10;
int b=20;
int sum=a+b;
system.out.printin(sum);
}
带参数的方法定义和调用
public static void main(string[] args){
 

  getSum(10,20);


}
public static void getSum(int num1,int ){

int sum=num1+num2
system.out.printin(sum);
}

注意:参数类型和参数个数要统一!!!

形参和实参

形参:方法定义中的参数

实参:方法调用中的参数

方法定义技巧

我要干什么?方法体—语句

我干这件事需要什么才能完成?形参

带返回值方法的定义和调用

方法的返回值其实就是方法运行的最终结果

如果在调用处要根据方法的结果,去编写另外一段代码逻辑

为了在调用处拿到方法产生的结果,就需要定义带有返回值的方法

定义的时候:

public static 返回值类型 方法名(参数){

方法体;

return 返回值;

}

调用:

(1)直接调用:方法名(实参);

(2)赋值调用:整数类型 变量名 =方法名(实参);

(3)输出调用:system.out.printin(方法名(实参));

注意事项

方法不调用就不执行

方法与方法之间是平级关系,不能互相嵌套

方法的编写顺序和执行顺序无关

方法返回值类型为void,表示该方法没有返回值,没有返回值的方法可以省略return语句不写。如果要编写return,后面不能跟具体数据。

03.方法的重载

同一类(class)中定义了多个同名的方法,这些同名的方法具有同等的功能。

每个方法具有不同的参数类型或参数个数,这些同名的方法就构成了重载关系。

同一类中方法名相同参数不同的方法。与返回值无关。

JAVA虚拟机会通过参数的不同来区分同名的方法

04.方法的内存

栈-先进后出

面向对象

拿(设计)东西过来对应的事情

01.类和对象

类:是对象共同特征的描述。

对象:是真实存在的具体东西

JAVA中必须先设计类才能获得对象

public class 类名{    }

例:public class phone{

//属性(成员变量)

String brand;

double price;

//行为(方法)

public void call(){

}

public void play(){

}

}

如何获得类的对象

类名 对象名=new 类名();

Phone p=new Phone();

如何使用对象

访问属性:对象名.成员变量

访问行为:对象名.方法名()

用来描述一类事物的类专业叫做JAVAbean类,是不写main方法的。

在以前编写main方法的类叫做测试类。

可以在测试类中创建JAVA

bean类的对象,并进行赋值调用。

02.封装

如何正确设计对象的属性和方法

对象代表什么,就带封装对应的数据,并提供数据对应的行为。

案例:人关门

门自己关的,人的行为造成的

有什么事,找对象,调方法

private-权限修饰符

public class girlFriend{
private string name;
private int age;
private string gender;}
//针对于每一个私有化的成员变量,都要提供get和set方法
//set方法:赋值  get方法:获取


//给成员name进行赋值,没有返回值
public void setName(string n){
name=n;
}
//作用:对外提供name属性,有返回值
public getName(string n){
return name;
}


public void setAge(int a){
if(a>=18&&a<=50){age=a;}
}
pubilc return getAge{
return age;
}


//行为
public void sleep(){
system.out.printin("睡觉")
}
//测试
GirlFriend gf1=new GrilFriend();
//赋值
gf1.setName("123");
gf1.setAge(18);
string name=gf1.getName();
int age=gf1.getAge();
03.this关键字

成员变量:方法里面的变量

局部变量:方法外面的变量

就近原则

system.out.printIn(age)-成员变量

system.out.prinIn(this.age)-局部变量

04.构造方法

创建对象的时候对成员进行初始化(赋值)

格式

public class Student{
    修饰符 类名(参数){
     方法体;
}
}

方法名与类名相同,大小也要一致。

没有返回值类型,连void的也都没有。

没有具体的返回值。

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值