实训day2

1.梳理今天所学的东西知识

上午:

1.随机数

(1)输出整形(向下取整)

(2)调用方法

package com.example.demo55.day2;

public class random {
    public static void main(String[] args) {
        double ans;
        ans=rond(100,20);
    }
    public static double rond(int max, int min){
        double num=Math.random();
        double mun1=num*(max-min+1)+min;
        return mun1;
    }
}

2.访问修饰符

public和protect的访问调用

public全局访问

public要在同一个包下

3.运算符

(1)a++和++a的区别:a++先运算再加一,++a先加一再运算

package com.example.demo55.day2;

public class a_add_add {
    public static void main(String[] args) {
        int a=3;
        int b=5;
        int c=a++;
        int d=++a;
        System.out.println("a++:"+c);
        System.out.println("++a:"+d);
    }
}

(2)b–和--b同理

package com.example.demo55.day2;

public class a_add_add {
    public static void main(String[] args) {
        int a=3;
        int b=5;
        int c=a++;
        int d=++a;
        int e=b--;
        int f=--b;
        System.out.println("a++:"+c);
        System.out.println("++a:"+d);
        System.out.println("b--:"+e);
        System.out.println("--b:"+f);
    }
}

4.循环结构

(1)常用循环

while(判断条件){

方法体

}

do{

方法体

}while(判断条件);

for(数据类型 变量;变量与length,size比较,变量的++(或–)){

方法体

}

package com.example.demo55.day2;

public class While {
    public static void main(String[] args) {
        System.out.println("while");
        int a=5;
        while(a<10){
            a++;
            System.out.println("我是a:"+a);
        }
        System.out.println("do while");
        a=5;
        do{
            System.out.println("我是a:"+a);
        }while(a<5);
        System.out.println("for");
        for(int i=0;i<10;i++){
            System.out.println("i=="+i);
        }
    }
}

(2)while和do while的区别

while语句在进入循环体之前要先判断条件是否成立,如果成立的话则进入循环体。
而do…while语句,是先执行循环体,然后再判断条件是否成立

(3)99乘法表

package com.example.demo55.day2;

public class While {
    public static void main(String[] args) {

        for(int i=1;i<10;i++)
        {
            for(int j=1;j<=i;j++)
                System.out.print(j+"*"+i+"="+i*j+"  ");
            System.out.println("");
        }
    }
}
运行结果
1*1=1  
1*2=2  2*2=4  
1*3=3  2*3=6  3*3=9  
1*4=4  2*4=8  3*4=12  4*4=16  
1*5=5  2*5=10  3*5=15  4*5=20  5*5=25  
1*6=6  2*6=12  3*6=18  4*6=24  5*6=30  6*6=36  
1*7=7  2*7=14  3*7=21  4*7=28  5*7=35  6*7=42  7*7=49  
1*8=8  2*8=16  3*8=24  4*8=32  5*8=40  6*8=48  7*8=56  8*8=64  
1*9=9  2*9=18  3*9=27  4*9=36  5*9=45  6*9=54  7*9=63  8*9=72  9*9=81  

5.数组

(1)声明方式

int[] arr; int arr[];

(2)赋值方式

int[] arr=new int[5];

package com.example.demo55.day2;

public class Arr {
    public static void main(String[] args) {
        //通过new关键字创建一个指定长度的数组
        int[] arr=new int[3];//默认值是0
        arr[2]=6;//直接赋值
        System.out.println(arr[2]);
        System.out.println(arr[3]);//越界(异常)
        //通过大括号赋值
        int[] arr1={1,2};
        int[][] arr2=new int[2][];
    }
}

(3)冒泡排序

package com.example.demo55.day2;

import com.sun.scenario.effect.impl.sw.java.JSWColorAdjustPeer;

public class Maopao {
    public static void main(String[] args) {
        int[] arr={5,15,45,57,35,12};
        for(int i=0;i<arr.length-1;i++)
            for(int j=0;j<arr.length-1;j++)
            {
                if(arr[j]>arr[j+1]) {
                    int n;
                    n=arr[j];
                    arr[j]=arr[j+1];
                    arr[j+1]=n;
                }
            }
        for(int i=0;i<arr.length;i++)
            System.out.println(arr[i]+" ");
    }
  
}

下午:

1.封装

将属性私有化,对外公开get/set方法

package com.example.demo55.day2;

public class Aa {
    private String name;
    private int 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;
    }
}




package com.example.demo55.day2;

public class Test {
    public static void main(String[] args) {
        Aa aa=new Aa();
        aa.setAge(20);
        aa.setName("MG");
        String name;
        int age;
        name=aa.getName();
        age=aa.getAge();
        System.out.println("name:"+name+" "+"age"+age);
    }
}

运行结果
    name:MG age20

2.继承

Aa类同上

package com.example.demo55.day2.Object;

public class Bb extends Aa{
    public String ID;

    public Bb(String ID) {
        this.ID = ID;
    }
    public Bb(){

    }

    public String getID() {
        return ID;
    }

    public void setID(String ID) {
        this.ID = ID;
    }
}


package com.example.demo55.day2.Object;

import com.example.demo55.day2.Object.Aa;

public class Test {
    public static void main(String[] args) {
        Bb bb=new Bb();
        bb.setID("12345");
        bb.setName("张三");
        bb.setAge(21);
        System.out.println("name:"+bb.getName()+" age:"+bb.getAge()+" ID:"+bb.getID());

    }
}

运行结果
name:张三 age:21 ID:12345

3.多态

简化代码,增强可维护性

package com.example.demo55.day2.Object;

import com.example.demo55.day2.Object.Aa;

public class Test {
    public static void main(String[] args) {
     Test test=new Test();
     System.out.println("Person");
     test.show(new Person());
        System.out.println("Woman");
     test.show(new Woman());
        System.out.println("Man");
     test.show(new Man());
    }
    public void show(Person person){
        person.eat();
        person.drink();
//        if(person instanceof Man){//instanceof测试一个对象是否为一个类的实例
//            Man man=(Man) person;
//            man.eat();
//        }else if(person instanceof Woman){
//            Woman woman=(Woman) person;
//            woman.drink();
//        }

    }
}

class Person {
    public void eat(){
        System.out.println("吃");
    }
    public void drink(){
        System.out.println("喝");
    }
}

class Man extends Person{
    public void eat(){
        System.out.println("吃肉");
    }
    public void drink(){
        System.out.println("喝酒");
    }
}

class Woman extends Person{
    public void eat(){
        System.out.println("吃水果");
    }
    public void drink(){
        System.out.println("喝奶茶");
    }
}

4.重写

方法名和参数列表与父类都相同

5.重载

方法名一样,参数列表不一样(在同一个类里面)

package com.example.demo55.day2.Object;

public class Animal {

    public void run(String name){
       System.out.println("Animal.run");
    }

}

package com.example.demo55.day2.Object;

public class Dao extends Animal{
    //重写:方法名相同,参数列表相同
    public void run(String name){
        System.out.println("Dao.run");
    }
    //重载:名词相同,参数列表不同
    public  void jiao(){
        System.out.println("Dao.jiao1");
    }
    public  void jiao(String name){
        System.out.println("Dao.jiao2");
    }
}


package com.example.demo55.day2.Object;

public class Test2 {
    public static void main(String[] args) {
        Animal animal=new Animal();
        Dao dao=new Dao();
        animal.run("mg");
        dao.run("mg");
        dao.jiao();
        dao.jiao("mg");
    }
}

运行结果
Animal.run
Dao.run
Dao.jiao1
Dao.jiao2

6.构造函数

写有参构造函数一定要写无参构造函数,可以只写无参,不写默认无参

7.接口

(1)只能是抽象方法

(2)接口无法被实例化,但是可以被实现

(3)获取外部资源

8.栈

(1)线性结构

(2)先进后出,后进先出

(3)栈的各种方法

package com.example.demo55.day2.Object;


import java.util.Stack;

public class Test2 {
    public static  void main(String[] args) {
        Stack<String> stack=new Stack<>();
        //入栈
        stack.push("张三");
        stack.push("李四");
        stack.push("王五");
        //获取栈顶元素
        System.out.println("栈顶:"+stack.peek());
        //移除栈顶元素
        stack.pop();
        //获取栈顶元素
        System.out.println("栈顶:"+stack.peek());
        //获取栈顶元素
        System.out.println("输出栈内元素");
        while (!stack.empty()){//empty()判断栈是否为空
            //获取栈顶元素
            System.out.println(stack.peek());
            stack.pop();
        }

    }
}

运行结果
栈顶:王五
栈顶:李四
输出栈内元素
李四
张三

2.作业

有30人,可能包括男人、女人、小孩,他们在一饭店共消费50元,其中每个男人花3元,每个女人花2元,每个小孩花1元,求男人、女人、小孩各多少人?

package com.example.demo55.day2.Object.Homework;

public class People_number {
    public static void main(String[] args) {
        for (int i=0;i<=50;i++)
            for(int j=0;j<=50;j++)
                for(int z=0;z<=50;z++)
                {
                    if(i*3+j*2+z*1==50&&i+j+z==30){
                        System.out.println("男人:"+i+" 女人:"+j+" 小孩:"+z);
                    }
                }
    }
}

注意:这里说可能包括男人、女人、小孩,要考虑没有的情况

编写程序实现披萨的制作。需求说明编写程序,接收输入信息,选择需要制作的披萨。可供选择的披萨有:培根披萨和海鲜披萨。
实现思路及关键代码
1)分析培根披萨和海鲜披萨。
2)定义披萨类(作为父类)。
属性: 名称、价格、大小;
方法:展示哦(show);
3)定义培根披萨和海鲜披萨,分别继承披萨类。
4)定义披萨工厂类,根据输入信息生产具体的披萨对象

package com.example.demo55.day2.Object.Homework;

public class Pisa {
    private String name;
    private double money;
    private int size;

    public void show(){
        System.out.println("名称:"+name+" 价格:"+money+" 大小:"+size+"寸");
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public double getMoney() {
        return money;
    }

    public void setMoney(double money) {
        this.money = money;
    }

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }
}

package com.example.demo55.day2.Object.Homework;

public class PGpisa extends Pisa{
    public PGpisa() {
        setName("培根披萨");
        setMoney(120);
    }
}


package com.example.demo55.day2.Object.Homework;

public class HXpisa extends Pisa{
    public HXpisa() {
        setName("海鲜披萨");
        setMoney(100);
    }
}


package com.example.demo55.day2.Object.Homework;

import java.util.Scanner;

public class Factory {
    public static void main(String[] args) {
        Pisa pisa1=new PGpisa();
        Pisa pisa2=new HXpisa();
        Scanner input=new Scanner(System.in);//创建一个键盘扫描类对象
        System.out.print("请您选餐:");
        int a,b;
        a=input.nextInt();
        System.out.print("请您选择尺寸:");
        b=input.nextInt();
        if(a==1)
        {
            pisa1.setSize(b);
            pisa1.show();
        }else {
            pisa2.setSize(b);
            pisa2.show();
        }

    }
}
package com.example.demo55.day2.Object.Homework;

public class Factory {
    public static void main(String[] args) {
        Pisa pisa1=new PGpisa();
        Pisa pisa2=new HXpisa();
        pisa1.show();
        pisa2.show();
    }
}package com.example.demo55.day2.Object.Homework;

public class Factory {
    public static void main(String[] args) {
        Pisa pisa1=new PGpisa();
        Pisa pisa2=new HXpisa();
        pisa1.show();
        pisa2.show();
    }
}


运行结果
请您选餐:1
请您选择尺寸:8
名称:培根披萨 价格:120.0 大小:8寸
    
    
请您选餐:2
请您选择尺寸:10
名称:海鲜披萨 价格:100.0 大小:10

一个栈的输入序列为1,2,3,4,5.则下列序列中是栈的合法输出序列的是(D)
A,5 1 2 3 4 B, 4 5 1 3 2 C,4 3 1 2 5 D,3 2 1 5 4

分析:

A:先出的是5,所以可以知道是按照1,2,3,4,5的顺序全装完后再取,但下一个取的应该是4,

B:先出的是4,可以知道按1,2,3,4的顺序装入后开始取,下一个可以装入5在取出来,但1应该是最后取出来的

C:先取出4同B,再取出3没问题,但1不能比2先取出

D:先装入1,2,3依次取出,再装入4,5,依次取出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值