0
点赞
收藏
分享

微信扫一扫

java基础阶段1

墨香子儿 2022-04-15 阅读 79
java

java基础语法:

1、基础数据类型:

1、int、short、long、char、boolean、float、double、byte:

整型:byte(1个字节),short(2个字节),int(4个字节),long(8个字节),long的默认值为0.0l,其余三个默认值都为0;

浮点型:float(4个字节,单精度浮点型),double(8个字节,双精度浮点型);

字符型:char(2个字节,默认值为\u0000(空格));

布尔型:boolean(true\false);

注意:两个或多个byte类型变量做运算,需要给定类型,eg:

 byte b1=21;
        byte b2=22;
        byte b3=(byte) (b1+b2);

因为(b1+b2)是int类型,如果用byte类型的b3来接收会造成损失,编译器会报错,所以使用(byte)转换类型.

2、Scanner:获取从键盘上输入的数据:

import java.util.Scanner;//需要导入java提供的类

public class test {
    public static void main(String[] args) {
        System.out.println("请输入你猜的数字:");
        Scanner sc=new Scanner(System.in);
        int se=sc.nextInt();//获取整形类型
        String text=sc.next();//获取字符串类型数据
        double ss=sc.nextDouble();//获取double类型数据,还有很多api,可以自己试一试
       
}

3、Random随机数:

import java.util.Random;
import java.util.Scanner;

public class Randomdemo01 {
    public static void main(String[] args) {
        Random s=new Random();
        Scanner r=new Scanner(System.in);
        int data=s.nextInt(100)+1;//将随机数的范围设置在1-100之间,其为[)形式
}

4、for循环:

public class fortest {
    public static void main(String[] args) {
        //循环四次,i++为自增,i++等价于i=i+1或者i+=1;
        for (int i = 0; i < 4; i++) {    
                System.out.println("*");
        }
    }
}

//for循环嵌套
public class TWOfor {
    public static void main(String[] args) {
        //执行4*5=20次
        for (int i = 0; i < 4; i++) {
            for (int i1 = 0; i1 < 5; i1++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

5、while循环:

public class While_demo01 {
    public static void main(String[] args) {
        double height=8848860;
        double small=0.1;
        int i=0;
        while (small<height){//当small<height时,进入循环,当small>=height时,跳出循环
            small*=2;//等价于small=samll*2;
            i++;
        }
        System.out.println(i);
    }
}

6、swicth选择语句:

public class Swicth_demo01 {
    public static void main(String[] args) {
        //目标: 学会使用switch分支结构,理解流程//周一:埋头苦干,解决bug
        //  周五:今晚吃鸡
        //周二:请求大牛程序员帮忙
        //周六:与王婆介绍的小芳相亲
        //周三:今晚啤酒、龙虾、小烧烤
        //周日:郁郁寡欢、准备上班。
        //周四:主动帮助新来的女程序解决bug
        //周一:打牌
        System.out.println("请输入日期:");
        Scanner rs=new Scanner(System.in);
        for(;;){//设置了一个死循环,也可以使用while(true)来达到死循环效果
            String week=rs.next();
            if(week.equals("开摆"))//当输入“开摆”时,结束循环
                break;
            switch (week){//当输入的值不为“开摆”时,进入switch选择,从case:"周一"开始匹配,当匹配到时,输出对应语句,并结束当前选择,若直到default时仍未匹配到,则执行default并结束当前循环,注意每个case后必须加上break;否则会发生穿透现象(不再进行匹配,直接向下执行语句)
                case "周一":
                    System.out.println("打牌");
                    break;
                case "周二":
                    System.out.println("请求大牛程序员帮忙");
                    break;
                case "周三":
                    System.out.println("今晚啤酒、龙虾、小烧烤");
                    break;
                case "周四":
                    System.out.println("主动帮助新来的女程序解决bug");
                    break;
                case "周五":
                    System.out.println("今晚吃鸡");
                    break;
                case "周六":
                    System.out.println("与王婆介绍的小芳相亲");
                    break;
                case "周日":
                    System.out.println("郁郁寡欢、准备上班。");
                    break;
                default:
                    System.out.println("耍锤子耍,开摆!");
                    break;
            }
        }
    }
}

7、this指针–代表当前类的对象的地址

public class ThisDemo01 {
    String name="www";
    int id=1;
    public ThisDemo01() {//ThisDemo01的无参构造器
        this.id=5;//将当前类的成员变量id、name进行赋值
        this.name="qqq";
    }
    public static void main(String[] args) {
       new ThisDemo01();
       ThisDemo01 c=new ThisDemo01();
        System.out.println(c.id);//输出结果为5
    }
}

8、继承类:

public  class person {//person作为父类,可以被其他类继承,继承类称为person的子类,子类可以调用父类的公有方法和成员变量,但私有(private)成员变量和方法不能继承,因为实体类具有封装性,但后期通过Class.forName("xxx.class")反射可以强制打开权限,获取私有成员变量和调用私有方法
    private String name;
    private int age;
    public person() {
    }
    public person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
//Teacher继承person
public class Teacher extends person{
    private int height;

    public Teacher() {
        super();
    }

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }
}
public class Test {
    public static void main(String[] args) {
        Teacher teacher=new Teacher();
        person p=new person();
        teacher.setAge(1);//调用父类的公共方法setAge
        System.out.println(teacher.getAge());//输出为1
    }
}

10、多态:

1、多态:同一类型对象执行同一行为,会出现不同的行为特征

2、对于变量而言,编译看左,运行看左

//父类Animal
public abstract class Animal {
    public String name="动物nb";
    public abstract void run();
}
//子类dog
public class dog extends Animal{
    public String name="狗交了";
    @Override
    public void run() {//重写了父类的run方法
        System.out.println("🐕跑得快");
    }
}
//子类乌龟
public class wugui extends Animal{
    public String name="乌龟";
    @Override
    public void run() {
        System.out.println("乌龟跑不动");
    }
}
//测试类Test
public class Test {
    public static void main(String[] args) {
       /*
        dog d=new dog();
        d.run();
        wugui w=new wugui();
        w.run();普通方法
        */
        Animal a1=new dog();
        a1.run();//输出🐕跑得快
        //多态:同一类型对象执行同一行为,会出现不同的行为特征
        //编译看左,运行看右
        Animal a2=new wugui();
        a2.run();//输出乌龟跑不动
        System.out.println(a1.name);//对于成员变量而言,编译看左,运行看左
        System.out.println(a2.name);
    }
}
//接口USB
public interface USB {
     void jieru();
     void bachu();
}
//Computer类
public class Computer {
    private String name;
    public Computer(String name) {
        this.name = name;
    }
    public void installUSB(USB u){
        u.jieru();
        if(u instanceof jianpan){//先判断,再强转
            jianpan p=(jianpan) u;
             p.dazi();
        }else if(u instanceof Mouse){
            Mouse m=(Mouse) u;
            m.dianji();
        }
        u.bachu();
    }
    public void start(){
        System.out.println(name+"启动了");
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
//Mouse类作为USB接口的实现类
public class Mouse implements USB {
    private String name;
    @Override
    public void jieru() {
        System.out.println(name+"鼠标被接入了");
    }
    @Override
    public void bachu() {
        System.out.println(name+"鼠标被拔出了");
    }
    public void dianji(){
        System.out.println(name+"鼠标点击了");
    }
    public Mouse(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
//jianpan类作为USB接口的实现类
public class jianpan implements USB{
    private String name;
    public jianpan(String name) {
        this.name = name;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public void jieru() {
        System.out.println(name+"键盘被接入了");
    }
    @Override
    public void bachu() {
        System.out.println(name+"键盘被接入了");
    }
    public void dazi(){
        System.out.println(name+"键盘打字了");
    }
}
//Computer类
public class Computer {
    private String name;
    public Computer(String name) {
        this.name = name;
    }
    public void installUSB(USB u){
        u.jieru();//当test01类执行installUSB方法时,由于u实际为jianpan类对象(编译看左,运行看右),所以当调用jieru()时,会执行其实现类jianpan的重写的jieru()方法,输出“外星人键盘被接入了”
        if(u instanceof jianpan){//判断u是否为jianpan类对象,之所以要判断,因为dazi和dianji这两个方法都属于jianpan和Mouse的独有方法,u不能调用,所以进行判断,然后强转,再调用自己独有的方法
            jianpan p=(jianpan) u;
             p.dazi();
        }else if(u instanceof Mouse){
            Mouse m=(Mouse) u;
            m.dianji();
        }
        u.bachu();
    }
    public void start(){
        System.out.println(name+"启动了");
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
//测试类
public class Test01 {
    public static void main(String[] args) {
      Computer s=new Computer("华为");//调用Computer类的构造器为其成员变量name赋值为“华为”
     s.start();//调用Computer类的start方法,输出“华为启动了”
     USB j=new jianpan("外星人");
     USB m=new Mouse("x100");
      s.installUSB(j);//调用方法,执行步骤看Computer类
      s.installUSB(m);
        //输出结果:
        华为启动了
外星人键盘被接入了
外星人键盘打字了
外星人键盘被接入了
x100鼠标被接入了
x100鼠标点击了
x100鼠标被拔出了
    }
}

11、接口interface:

1、接口中的所有抽象方法必须被子类重写,静态方法不会被重写,因为静态方法可以被共享.

2、接口中的方法可以不用加上abstract标志为抽象方法,但是如果不是抽象方法则必须加上标识符,比如static、default.

举报

相关推荐

【Java基础阶段】Java流程控制

1、准备阶段

阶段总结(1)

阶段总结1

Java基础1

JAVA基础1

java基础-1

0 条评论