java入门

第一章 Java入门

1. java的三大应用场景

Java SE:标准版,c/s

Java EE:企业版,web开发

Java ME:移动版

2.特点

面向对象的、开源的、支持垃圾回收、跨平台(支持多种操作系统)的高级编程语言。

 

简单的、面向对象的、分布式的、解释型、健壮的、安全的、结构中立的、可移植的、高效的、多线程语言。

3. jdk jvm jre

jvm: java虚拟机; 利用软件技术模拟的一台计算机; 借助虚拟机实现跨平台

jre:java运行环境;一系列的jar包;java程序要想运行,必须jre环境

jdk: java开发包;jvm+jre+一系列工具组件(程序) java.exe,java.exe...

运行原理:

 

4.数据类型

数据类型:不同的类型在内存中占据的存储空间是不一样的

大类别:8种基本类型、引用类型

基本数据类型

  • 整形:根据存储范围的不同:byte(字节、8bit、-128~127,-27~2)、short(短整型,16bit)、int(整形,4字节,21亿)、long(长整形,8字节)

  • 浮点型:float(单精度) double(双精度)

  • 字符型:char 单引号引起来的字母、汉字或数字

  • 布尔型:boolean 取值:true/false 用来当成条件判断的结果使用

引用数据类型

字符串:String、数组、自定义类

5.声明变量

第一种方式:

//数据类型 变量名;
//变量名=值;
int num;
num=2;

第二种方式:

//数据类型 变量名=值;
int num=2;

变量名的命名规则:

1.由字母、数字、下划线、$符号构成;

2.不能以数字开头。即字母、下划线和$符号开头;

3.不能使用java中的关键字;

public static void main(String [] args)//方法体
{
    //声明变量 赋值
    byte bt1=127;
    int a=10;
    char sex='男';
    long lg=100;
    
    float f1=3.14f;
    double b1=3.14;
    
    boolean bln=true;
    
    //未经赋值的变量  不能直接使用
    System.out.println(a);
    System.out.println(sex);
}

6.各种类型的运算符

算术运算符:+ - * / %

++ --

后置即(i++或i--)优先级最低,先进行其他运算,再进行自增运算

关系运算符:>= <= < > != ==

逻辑运算符:&&||

赋值运算符:= += *= /= %=

条件运算符:?:

int money=120;
String role=money>1000?"女主角":"路人甲";
/*if(money>1000)
{
    role="女主角";
}
else
{
    role="路人甲";
}*/
System.out.println(role);

优先级:一元运算符>算术>关系>逻辑>赋值>条件

public static void main(String[] args)
{
    int num=100;
    int num1=num++;
    System.out.println(num1);
     System.out.println(num);
     
     if(++num>=101)
     {
         System.out.println("猜对了");
     }
}

7.类型转换

表达式中不同类型的数据在运算时会进行转换:

1、隐式转换(自动):小类型----->大类型;byte---->short--->int--->long; float---->double

2、显式转换(强制):大类型----->小类型;long--->int--->short--->byte;double--->float

int a=10;
double d=20.9898;
a=(int)d;

字符串类型转换:

String str1="100";
int a=Integer.parseInt(str1);
System.out.println(a);

8.流程控制语句

if
if  else
if  else  if ... else...
switch(a) 
{
        case a:
}

判断三条边能否构成三角形

int a=10,b=20,c=30;
    if(a+b>c&&a+c>b&&b+c>a)
    {
        System.out.println("新三角形");
    }
    else
    {
        System.out.println("不成啊");
    }

根据money绝对如何做

int money=10000;
if(money<10000)
{
    System.out.println("上交");
}
else if(money>=10000&&money<=20000)
{
    System.out.println("留下2000");
}
else if(money>20000&&money<30000)
{
    System.out.println("留下3000");
}
else
{
    System.out.println("...s");
}

switch

int num=1;
switch(num)//switch里可填类型  byte,short,int,char,String
{
    case 1:
        System.out.println("金奖");
        break;
    case 2:
        System.out.println("银奖");
        break;
    case 3:
        System.out.println("铜奖");
        break;
    default://缺省,默认
        System.out.println("好惨");
}

第二章 流程控制和循环语句

1、程序执行顺序

顺序执行:从上到下、从左到右;

选择判断:需要根据条件去判断执行某一分支

循环:重复,循环

2、控制台输入

步骤:

1、创建Scanner对象;导入包

//扫描器:类名  对象名(自己定义)=new 构造方法(System.in);
Scanner sc=new Scanner(System.in);

2、提示输入信息

System.out.println("请输入用户的年龄");

3、调用Scanner中的方法,获取各种类型的数据

String name=sc.next();//获取字符串
int age=sc.nextInt();//获取整形
double height=sc.nextDouble();//获取double
public static void main(String[] args)
{
    System.out.println("请输入用户的名字");
    //创建 Scanner对象
    //扫描器:类名  对象名(自己定义) =new 构造方法(System.in);
    Scanner sc=new Scanner(System.in);
    String name=sc.next();//获取字符串
    System.out.prinln("请输入用户的年龄");
    int age=scanner.nextInt();//获取整形
    System.out.println("请输入用户的身高");
    double height=scanner.nextDouble();//获取身高
    System.out.println("名字是:"+name+"年龄是:"+age+"身高是:"+height);
}

3、分支语句

  • if

  • if....else

  • 多重if...else

  • swith

4、循环语句

重复执行的过程称为循环。

计算机的计算能力、执行速度、记忆能力很强。可代替人进行遍历和累加。

循环分类:

1.while

int i=1;
while(i<=10)
{
    System.out.prinln("hello"+i);
    i++;
}

2.do--while

int i=1;
do{
    System.out.println("我喜欢JAVA");
    i++;
}while(i<=10);

3.for

for(int i=1;i<=10;i++)
{
    System.out.println("这是for循环");
}
//执行顺序
//1、int i=1;
//2、i<=10;若成立进入循环主题
//3、循环体
//4、i++;
//重复2~4,直至2不满足条件,退出循环

while 与 do--while的区别:

1、while先判断再执行

2、do---while 先执行一次,然后再判断

应用场景:

循环次数明确的情况下一般使用for循环,不明确则使用 while 或 do---while

循环输入5次成绩,求出平均成绩、最大成绩、最小成绩

 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int soc;
        int sum=0;
        int min=101;
        int max=-1;
        for (int i=1;i<=5;i++)
        {
            System.out.println("请输入第" + i + "个成绩");
            soc=sc.nextInt();
            sum+=soc;
            if (soc<min)
            {
                min=soc;
            }
            if (soc>max)
            {
                max=soc;
            }
        }
        System.out.println("平均成绩:"+sum/5+" 最大值:"+max+"最小值:"+min);
    }

5、跳出循环

break:终止循环

利用break打印出出素数

public static void main(String[] args)
    {
        int j,count=0;
        for (int i=1;i<=1000;i++)
        {
            for (j=2;j<i;j++)
            {
                if (i%j==0)
                {
                    break;
                }
            }
            if (i==j)
            {
                System.out.print(i+"\t");
                count++;
                if (count==5)
                {
                    System.out.println();
                    count=0;
                }
            }
        }
    }

continue:终止本次,继续下次循环

利用continue同时求出奇数和 偶数和

 public static void main(String[] args) {
        int sum1=0,sum2=0;
        for(int i=0;i<=100;i++)
        {
            if (i%2==0)
            {
               sum2+=i;
               continue;
            }
            sum1+=i;
        }
        System.out.println("奇数和为:"+sum1+"  偶数和:"+sum2);
    }

注意:break与continue后的语句均不会执行

6、循环嵌套

//外层循环执行一次,内层循环执行一轮
for(int i=1;i<=9;i++)
{
    for(int j=1;j<=9;j++)//控制一行打印多少“*”
    {
        System.out.print("*\t");
    }
    System.out.prinln();
}

百钱百鸡问题

public static void main(String[] args) {
        int x,y,z;
        for (x=0;x<20;x++)
        {
            for (y=0;y<33;y++)
            {
                z=100-x-y;
                if (z==300-15*x-9*y)
                {
                    System.out.println("公鸡"+x+"只 母鸡"+y+"只 小鸡"+z+"只\n");
                }
            }
        }
    }

鸡兔同笼问题

public static void main(String[] args) {
        int x,y;
        for (x=1;x<35;x++)
        {
            y=35-x;
            if (4*y+2*x==94)
            {
                System.out.println("鸡有"+x+"只  兔有"+y+"只");
            }
        }
    }

水仙花数

ublic static void main(String[] args)
    {
        int a,b,c;
       for (int i=100;i<=999;i++)
        {
            a=i%10;
            b=i/100;
            c=i/10%10;
           if (a*a*a+b*b*b+c*c*c==i)
           {
               System.out.println(i);
           }
        }
    }

第三章 类和对象

1、认识类和对象

对象:对现实生活一个个体的描述。

属性:对象的特征

方法:特定的行为

类:对一系列具备相同的属性和行为的对象的描述。

类和对象的关系

类:实例化--->得到对象

对象:抽象---->类

2、创建类

创建学生类:

1、类名:首字母大写(Pascal命名法)

//语法:访问修饰符 类关键字  类名
//public:公有的,可以被任意其他类使用
//public修饰的类名要和文件名保持一致
public class Student{
    //1、属性:变量
    char sex;
    int age;
    double height;
    String hobby;
    //2、方法
    /*访问修饰符:public 公有的
     *返回值类型:void  无返回值
     *方法名:自己定义 驼峰命名法
     *参数:
     *{方法体}
     */
    public void playGame()
    {
        System.out.println("在玩游戏");
    }
    
}

2、属性:定义在类中的变量

类型默认值说明
Stringnull空地址,空引用
int0 
double0.0 
char空格:\0 
booleanfalse 

3、方法

//2、方法  语法:访问修饰符 返回值类型 方法名(参数){方法体}
    /*访问修饰符:public 公有的
     *返回值类型:void  无返回值
     *方法名:自己定义 驼峰命名法
     *参数:
     *{方法体}
     */
//方法的使用:1、定义方法  2、调用方法
//1、无参数、无返回值的方法
 //定义:
 public void playGame()
    {
        System.out.println("在玩游戏");
    }
//调用:
public static void main(String[] args) {
        Student student = new Student();
        student.name="大力";
        //对象.方法名();
        student.study();
}
//2、无参数、有返回值的方法
   //定义:
public String buy(){
        System.out.println("拿钱");
        System.out.println("去宠物店");
        System.out.println("买宠物");
        String pig="小猪";
        //return :返回 具体的值(要和规定的返回值类型保持一致) ;结束方法的运行
        return pig;
    }
//调用:
public static void main(String[] args) {
        Student student = new Student();
        student.name="大力";
        //对象.方法名();
        //student.study();
        //声明变量 接受返回值
        String result=student.buy();
        System.out.println("吃红烧肉:"+result);
        System.out.println(student.buy());
    }
//3、有参数、无返回值的方法
//定义:
//定义中的参数:形参
    public void study2(String course,int hour){
        if(hour<12){
            System.out.println(name+"在学习"+course);
        }
        else {
            System.out.println("游戏攻略:"+course);
        }
​
    }
//调用:
 public static void main(String[] args) {
        Student student = new Student();
        student.name="大力";
       String course="前端";
       int hour=16;
       //调用带参数的方法
        //调用时必须按照规定提供相同类型,相同个数,实际的数据
        student.study2(course,hour);
​
    }
//4、有参数、有返回值的方法
//定义: /**
     * 买苹果
     * @param money 钱
     * @return 苹果的个数
     */
   public int buyApple(int money){
      if(money<10){
          return 2;
      }else if(money>10&&money<20){
          return 5;
      }
      return 20;
   }
   //调用:
   public static void main(String[] args) {
        Student student = new Student();
        student.name="大力";
        int num= student.buyApple(50);
        System.out.println(student.name+"买入苹果:"+num);
 }

方法的调用

1、同类中的方法如何调用

直接写方法名

方法名(); 有参数传参数,无参数不用传

2、不同类中的方法相互调用

先创建对象,然后对象名.方法名(); 有参数传参数,无参数不用传

3、创建对象

public static void main(String[] args){
    //创建对象
    //类:自定义的数据类型,等同于int,double等
    //语法:类名 对象名=new 类名();
    //引用类型
    //栈:先进后出;空间小,读取速度快;存储基本数据类型和引用类型
    //堆:空间大,读取速度相对慢;存储对象
    Student stu=new Student();
    //操作属性  :通过对象去访问属性
       student1.name="小文";
       student1.sex='男';
       student1.age=18;
       student1.hobby="吹拉弹唱";
       
        System.out.println(student1.name+student1.sex+student1.age+student1.hobby);
        //调用方法
        student1.playGame();
​
​
        System.out.println(student1);
​
        Student student2=new Student();
        //操作属性  :通过对象去访问属性
        student2.name="小宝";
        student2.sex='男';
        student2.age=18;
        student2.hobby="吃喝玩乐";
​
        System.out.println(student2.name+student2.sex+student2.age+student2.hobby);
        //调用方法
        student2.playGame();
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 10
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值