Java.1--基本类型-引用类型--万年历1.0

一、环境介绍

idea --集成开发环境 "一站式开发"。能创建Java,web,maven等项目类型。

二、文件介绍

(1)src:存储Java源码的地方。
(2).idea: 是idea平台为每一个项目自动生成的文件包。
(3)demo.iml 系统平台文件
(4)libraries(jar包):包含功能插件

三、创建包/目录/文件夹(package) 

==>阿里规约:不存在不在包里的文件

==>创建包:包名必须全小写 ;包结构通过点符号表示 ;一般来说,包名是域名的倒序
                     端口号+ip ==>域名:https://www.xxx.com ==>包名是com.xxx.xxx

四、创建类 :一个信息载体

class 类:一个信息的载体,相当于“一张纸” ; .java ===类,类名首字母大写

interface 接口:Java.7--接口-内部类-异常处理-优快云博客

五、运算符

a.赋值运算符:  =    +=  -=    eg:int a=9;  a+=3;a=a+3
b.关系运算符:  > < >= <=  == !=
c.逻辑运算符:  &&  ||  !
d.算术运算符:  + - * / %    10%3=1

六、所有编程语言学习的顺序

1.输出语句
sout 回车 输出语句
System.out.println();输出后换行
System.out.print();输出后不换行

\t 空格
\n 换行

2.输入语句
保姆                          张  =    新的                     保姆岗位 (工作地点)
声明一个做保姆的人  张    提前设置一个岗位    保姆岗

Scanner zhang=new Scanner(System.in);
System.in 输入流

声明一个
3.变量
4.选择结构
5.循环结构
6.方法

七、基本类型与引用类型 

final String a 是常量
        String a 是变量

1.java里的容器类型

a.基本类型(能带着的都是基本):4种 8个

a.1整数类型:

byte    (1个字节,8位,最大到数值127)
short   (2个字节,16位,最大到3千)
int       (4个字,32位,到21亿)
long    (8个字节64位)

a.2小数类型:

float      (4个字节,小数点后边32位)

double  (8个字节)

a.3布尔类型:boolean    0/1   真/假

a.4字符类型:char  (2个字节,一个汉字,一个字母,一个符号)

b.引用类型:Scanner   String

(带不走的都是引用 : 房子,老家()   有个地址 可以访问)

2.基本类型容器

2.1.声明变量(通知内存开辟一个空间): 变量类型 变量名;
2.2.给变量赋值:变量类型 变量名 =数值;
                         int                 age=9;
                         int age=input.nextInt();

2.3.使用变量:  sout(age);//输出age

3.引用类型容器

3.1.声明变量:   变量类型 变量名 ;

                          Scanner  input ;
3.2.给变量赋值:变量名=new 变量类型();

                         input  =new Scanner();

             ---->    变量类型  变量名=new 变量类型();
             ---->   Scanner input=new Scanner(System.in);
3.3.使用: 打点.调用方法();

                input.next().var 回车-->String age=input.next();

八、万年历1.0

package com.demo;

import java.util.Scanner;

public class Demo1 {


  /* 修饰符 修饰符  demo 类名
    public 公有的类 大家都可以用  权限修饰符(共4种)
    class 类,表明资源文件是什么类型的
    
    程序入口 psvm 回车
    固定格式:
    public static void main(String[] args) {
    公有的  静态的   返回值
    public入口 为了让虚拟机找到程序入口
    static程序运行前,就提前加载出来的,提前创建出来的,提前创建出来的,提起存在的 入口是要先存在的,所以用静态变量  运行的时候入口是必须要有的
    void 返回值为空  void 代表着”结束“   main()方法是程序的入口,也是出口  main不能改名
    String[] args :参数  参与任务完成的数值  (需要外界的一些数值写到小括号里 不需要可以为空)
   }
    在java中,单词()  一定是一个 方法,方法完成一个任务 例如void()
  */


    public static void main(String[] args) {

        //0.从控制台扫描数据
        System.out.println("请您输入年份:");//在控制台输入,在sout 编译器接收 (IO流)
        Scanner input = new Scanner(System.in);
        //int year  类型 变量   相当于一个兜 装接收到的数据
        int year = input.nextInt();// 表示读取到的下一个单词 给year

        System.out.println("请您输入月份:");
        int month = input.nextInt();

        System.out.println(year + "年" + month + "月");

        //1.算月份有多少天
        //规则:
        // 1 3 5 7 8 10 12 这些月份是31天;
        // 4 6 9 11这些月份是30天;
        // 2月份 闰年29天 平年28天
        //闰年:年份能整除4并且不能整除100 或者 能整除400
        //====> year % 4 == 0 && year % 100 != 0 || year % 400 == 0


        int days = 0;

        if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
            days = 31;
        } else if (month == 4 || month == 6 || month == 9 || month == 11) {
            days = 30;
        } else {
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                days = 29;
            } else {
                days = 28;
            }
        }


        //2.算输入月份的1号是星期几
        // 规则:(整年的天数+整月的天数+天数)%7   1900.1.1 是 星期一
        // => week = (sumYear + sumMonth + 1) % 7 == 0 ? 7 : (sumYear + sumMonth + 1) % 7
        // 例如:1902年4月2日
        // 思路:
        // 1.先计算输入的年份与1900相差年的天数;
        // 2.再算输入的月份有多少天;
        // 3.再加上日期的天数;
        // 4.三个值相加对7取余;
        // 如果等于0为星期日,
        // 否则余数是多少就是星期几



        //思路1. 计算 输入的年份 与1900 相差的天数  闰年366天 平年365天

        int sumYear = 0;
        for (int i = 1900; i < year; i++)//输入年份到1900年的 每一年都要加 但不包含没过完的年
        {
            if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0) {
                sumYear += 366;
            } //sumYear=sumYear+366
            else {
                sumYear += 365;
            }
        }



        //思路2. 计算 输入的月份 距离 输入的年份的 1月 有多少天

        int sumMonth = 0;
        for (int i = 1; i < month; i++)//从1月份开始到输入月份的每个月都要加
        {

            if (i == 1 || i == 3 || i == 5 || i == 7 || i == 8 || i == 10 || i == 12) {
                sumMonth = sumMonth + 31;
            } else if (i == 4 || i == 6 || i == 9 || i == 11) {
                sumMonth += 30;
            } else {
                if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                    sumMonth += 29;
                } else {
                    sumMonth += 28;
                }
            }
        }



        //思路3-4 计算输入月份的 1号 是星期几?

        int week = (sumYear + sumMonth + 1) % 7 == 0 ? 7 : (sumYear + sumMonth + 1) % 7;



        //3.打印日历:

        System.out.println("一\t二\t三\t四\t五\t六\t日");
        for (int i = 1; i < week; i++) {
            System.out.print("\t");
        }
        for (int i = 1; i <= days; i++) {
            System.out.print(i + "\t");
            if ((sumYear + sumMonth + i) % 7 == 0) {//能被7整除 输出换行 跳出if
                System.out.println();
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值