JAVA学习记录

《明解JAVA》记录

一、显示字符

语句解析:

public class(//类) MainApplication(//类名) {
    public static void main(String[] args) {
        // 程序从这里开始执行
        System.out.(//标准输出流) println(//输出后换行)("Hello World");
        // 访问命令行参数
        for(String arg : args) {
            System.out.println("参数: " + arg); 
        }
    }
}

二、使用变量

1、声明语句:int x

2、

import java.util.Scanner;

class A{

public static void main (String[] args){

Scanner stdIN = new Scanner(System.in);

int x=stdIN.nextInt()//读入通过键盘输入的x的整数值

}}

Scanner stdIN = new Scanner(System.in);   从标准输入读取用户输入

典型用途:System.out.print("请输入年份:");

int year =stdIN.nextInt();//读取整数输入

三、逻辑

四、循坏

1、do语句

do语句判断要不要循坏的语句在大括号之后

2、while语句

x--结果是递减前的值

do是执行循坏体后判断,while是执行循坏体前判断

3、for

4、break和continue

五、基本类型和运算

七、方法

1、方法的声明

读入值

八、类:对字段、构造函数、方法等进行封装后的内容

将变量包装起来,形成一个集合的映射,class xx像是一个模具,通过new xx()来创建实例

private:私有的,无法从外部进行访问,原则上要将类中的字段设为私有

第一版:

Account:银行账户类

AccountTester:测试Account的类

Account adachi:adachi不是类的主体,而是用来引用主体的类类型变量

类类型变量的主体是实例

第二版:

构造函数:正确地初始化实例。名称与类相同,不能返回值

实例方法:getName,未加static的字段是属于各个实例的,即实例变量

未加static的方法是属于各个实例的,即实例方法

九、创建日期类

构造函数用this

用于获取字段值的方法称为getter方法,用于设置字段值的方法为setter方法,二者统称为访问器。

类类型变量的比较

1)day1==day2 判断二者的引用目标是否相同

2)调用getter方法,判断所有字段的值是否相同

创建比较两个日期的方法:

方法compDay在类Day的外部声明

类类型变量的数组

“2”出现错误:元素a[1]是引用Day的类类型变量,不是日期的实例(主体),需要用new运算符来另外创建实例,如下:构造函数new中必须传入三个int型参数

数组的创建

对于c:已经创建的数组类型的变量,若要将新创建的数组主体的引用赋给该变量,可以像c那样

第三版:

package org.example;

public class Day1 {
    private int year=1;
    private int month=1;
    private int date=1;
//构造函数
    public Day1()     {}
    public Day1(int year) {this.year=year;}
    public Day1(int year,int month) {this(year);this.month=month;}
    public Day1(int year,int month,int date) {this(year,month);this.date=date;}
    public Day1(Day1 d)   {this(d.year,d.month,d.date);}//获取年、月、日

    //获取年、月、日
    public int getYear(){return year;}
public int getMonth(){return month;}
public int getDate(){return date;}
//设置年、月、日
public void setYear(int year){this.year=year;}
public void setMonth(int month){this.month=month;}
public void setDate(int date){this.date=date;}
public void set(int year,int month,int date){ //设置年月日
    this.year=year;
    this.month=month;
    this.date=date;
}
public int dayOfWeek(){
        int y=year;
        int m=month;
        if(m==1 ||m==2){
            y--;
            m+=12;
        }
    return (y + y / 4 - y / 100 + y / 400 + (13 * m + 8) / 5 + date) % 7;
}
//与日期d相等吗
public boolean equalTo(Day1 d){
        return year==d.year&&month==d.month&&date==d.date;
}
public String toString(){
    String[] wd={"日","一","二","三","四","五","六"};
    return String.format("%04d年%02d月%02d日(%s)",
            year,month,date,wd[dayOfWeek()]);
}
}
dayOfWeek:计算星期;equalTo:判断是否相等;toString:返回字符串

类类型的字段

基本类型:int、double、boolean,直接存储值

类类型:string或Day等自定义类,存储的是对象的引用

需要实例化即需要通过new创建对象:

this.purchaseDay=new Day(purchaseDay)

不要返回引用类型的字段值(类类型),因为外部能通过该引用值间接改写值

“字符串”+类类型变量的运算中,回自动调用".toString()"

十、类变量和类方法

类变量:在字段声明时加上static,就是类中所有实例共享的数据,也称为静态字段

eg:private static int counter=1  //标识编号

public int getId(){return id;}  //获取标识编号

类变量可以通过“类名.字段名"或”类类型变量名.字段名"进行访问

Id a = new Id()

访问:Id.counter() 或a.counter

一个源程序不可以声明两个以上的public类

Math类:定义了自然对数E和圆周率PI的类变量,都是double型的常量,声明都加上final

//java.lang.Math

public final class Math{

//最接近自然对数的底数e的double值

public static final double E=2.78

·····}

import java.util.Scanner;

class Circle{

public static void main(String[] args){

Scanner stdIn=new Scanner(System.in);

System.out.print("半径:");

double r=stdIn.nextDouble();

如果常量需要提供给类的使用者,需要以public且final的类变量形式进行提供

类方法

类方法的调用

因为main是类方法,所以如果想调用max方法,也得将其声明为类方法

类初始化器和实例初始化器

当以某种方式初次使用类时,该类的类初始化器就执行完毕了

十一、包:将类集中封装起来

单类型导入声明:import 完全限定名

按需类型导入声明:(不可过多使用)

import 包名.*

如import java.util.*;

在按需类型导入中,不可以导入不同层次的包中的类型名称

包的声明

十二、类的派生和多态

继承

例子:

super(),调用超类的构造函数

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值