文章目录
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,依次取出