Java基础

    1.准备要输入(定义a)

    int a;

    Scanner in = new Scanner (System.in);

    a=in.nextInt();

    输出System.out.println(a);

    (不定义a)

    System.out.println(in.nextLine())

    (alt /补全)

    Scanner scanner = new Scanner(System.in);

    int f = scanner.nextInt();

    辗转相除最大公约:

    if(a < b)

    {

    temp = a; a = b; b = temp;

    }

    while(b != 0)

    {

    Int a,b,team;

    team = b;

    b = a % b;

    a = team;

    return a;

    }

    2.链接两个更长的字符串

    System.out.println("Hellow="+2);

    运行结果Hellow=2

    3.Syetem.out.println(2+3+"=2+3="+(2+3));

    运行得5=2+3=5;

    如果System.out.prinln(2+3+"=2+3="+2+3);

    运行得5=2+3=23;

    4.浮点运算double a=0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1+0.1;

    System.out.println(b);运行得b=0.99999999999999,而不等于1,

    也就是不等于1.0;

    so,比较两个浮点数a,b是否相等(==),

    需要System.out.println(Math.abs(a-b) < 1e-6);

    意为两个数的差的绝对值是否小于一个比较小的数(1e-6,为1×10-6)

    int a

    int b;

    Scanner in = new Scanner (System.in);

    a=in.nextInt();

    b=in.nextInt();

    System.out.println(a/b*1.0);

    int a

    double b;

    Scanner in = new Scanner (System.in);

    a=in.nextInt();

    b=in.nextInt();

    System.out.println(a/b);

    int a

    double b;

    Scanner in = new Scanner (System.in);

    a=in.nextInt();

    b=in.nextDouble();

    System.out.println(a/b);

    int a

    int b;

    Scanner in = new Scanner (System.in);

    a=in.nextInt();

    b=in.nextDouble();

    整形可以直接到浮点。浮点(int)强制类型转换到int

    5.光标第一行,shift+向下=包围两行,ctrl +/=两行开头加入//(注释)

    6.debug,某行最左侧双击,点击小虫子,按下step over,看if语句是怎样执行的。按下step Into可进入v.First();看看v这个对象是执行的哪里或动作 或者执行的是哪一个值(8.)

    7.if-else,必加大括号,大括号内缩进一个tap位置

    全部选中按下tap,整体后移

    8.总 Vending v=new Vending() 创建Vedning的类,并在其类中,创建了对象 v 。

    并设计了2个动作给这一个类中的对象使用

    void Good()

    void First()

    让这一个类中的对象使用这些动作,让对象做这些事情,v.Good(10); v.First();

    “类”为售货机,而一个对象则可表示为输入金钱的数量然后进行找零出货。同一个类中的第二个对象则可表示为输入第二次不同的金额然后进行找零出货。

    2 
3 
4 
5 
6 
7 
9 
10 
11 
12 
14 
15 
16 
17 
18 
21 
22 
class Verxiin#chine { 
int price; 
int balance; 
int total; 
void 
void mmt) 
balance — balance + 
static void min(StringÜ args) { 
// TOOO Auto-generated stLb

    static void min(StringO args) { 
Vendir*chine 
shmQrcmt() ; 
shmgalance() ;

    9.

    3 
4 
5 
6 
7 
9 
10 
11 
12 
public class Vendin#chine { 
int price — 80; 
int balance; 
int total; 
void setPrice(int price) 
this.price — price; 
this. getFood()

    "this" , 表达这一次调用函数时用的那个变量,图中意为让void setprince()函数里的prince等于class类里的VendingMachine里的那个prince。

    10.在一个成员函数内调用另一个成员函数只需要直接引用就好。

    例:

    void Good()

    {

    int…

    }

    void First()

    {

    //调用Good函数

    Good();

    }

    在函数的外部即在void main()里如(8.)需要v.Good;

    在main函数里不能直接调用成员函数。

    11.

    例如232323,目的取出2 3 2 3 2 3,每个数字都要取出

    int a = 1;

    s = (s % 10) / (a / 10);

    a = a * 10;

    12.求次方

    int c;c = (int)Math.pow(2, count-1);

    13.计算奇偶个数

    s = in.nextInt();输入应放入循环内部

    14.

    int 
int 
int 
int 
class { 
price - 80; 
total ; 
return W;

    15.构造函数 不能有返回 类型(赋值)

    如果有一个成员函数的名字和类的名字完全相同,则创建这个类的每一个对象的时候都会

    自动调用这个构造函数

    16.重载

    类 可 以 有 
造 函 数 , 只 要 它 们 的 
表 不 同 
· 创 建 对 象 的 时 候 给 出 不 同 的 参 数 值 , 就 会 自 动 调 用 不 
同 的 构 造 函 数 
· 通 过 this() 还 可 以 调 用 其 他 构 造 函 数 
一 个 类 里 的 同 名 但 参 数 表 不 同 的 函 数 构 成 了 重 载 关 系

    例子

    (aopd

    this();调用其他的参数为空的构造函数。

    要求:只能在构造函数里出现,而且只能是构造函数的第一句,而且只能用一次。

    17.

    题 目 内 容 : 
设 计 一 个 表 示 分 数 的 类 Fraction 。 这 个 类 两 个 int 类 型 的 变 量 分 别 表 示 分 子 和 分 母 。 
这 个 类 的 构 造 函 数 是 : 
Fraction(int a, int b) 
构 告 一 个 a / b 的 分 数 。 
这 个 类 要 提 供 以 下 的 功 能 : 
doubletoDouble(), 
寻 分 喽 攵 车 专 扌 负 丿 ] doub 
Fraction plus(Fraction r); 
将 自 己 的 分 数 和 r 的 分 数 相 加 , 产 生 一 个 新 的 Fraction 的 对 須。 注 意 小 学 四 年 级 学 过 两 个 分 数 如 何 相 加 的 哈 。 
Fraction multiply(Fraction r); 
将 自 己 的 分 数 和 r 的 分 数 相 乘 , 产 生 一 个 新 的 Fraction 的 对 須。 
void print(); 
将 自 己 以 子 / 分 母 " 的 形 式 输 出 到 标 准 输 出 , 并 带 有 回 车 换 行 。 如 果 分 数 是 1 / 1 , 应 该 输 出 1 。 当 分 子 大 于 分 时 , 不 需 要 提 出 整 数 
部 分 , 即 31 / 30 是 一 个 正 确 的 输 出 。 
注 意 , 在 创 建 和 做 完 运 算 后 应 该 化 简 分 数 为 最 简 形 式 。 如 2 / 4 应 该 被 化 简 为 1 / 2 。 
你 写 的 类 要 和 以 下 的 代 码 放 在 一 起 , 并 清 勿 修 弋 码 : 
importjava.util.Scanner;

    class Fraction 
private int fenzi, fenmu; 
Fraction(int a, int b) 
this . fenzi 
this . fenmu 
b; 
double toDoub1e() 
return (double)this . fenzi / this . fenmu; 
Fraction plus (Fraction r) 
Fraction team 
new Fraction(Ø,Ø); 
team. fenzi 
r.fenzi * this .fenmu + r.fenmu * this .fenzi; 
team. fenmu 
r. fenmu * this . fenmu; 
return r;

    void print() 
if(fenzi 
fenmu) 
System. out. println (1) ; 
else 
int n; 
int yueshu = 0; 
if(fenzi > fenmu) 
n 
else 
n 
fenzi; 
fenmu;

    public String print(){ 
int common 
numerator>denominator ? denominator . 
int c 
String s 
for(int i = { 
if(numerator % i 
&& denominator % i 
common 
this . numerator = this . numerator/common; 
this . denominator = this . denominator/ common; 
if (denominator==l && numerator==l) { 
numerator; 
else { 
s + this . numerator 
return s; 
+ this . denominator;

    分数相乘相加,this使用,创建新的对象。

    18.

    3 pLblic class Display { 
4 
5 
6 
78 
8 
9 
11- 
12 
13 
14 
15 
16 
private int value e; 
private int limit — value; 
p'±lic Display(int limit) { 
this. limit limit; 
void increase() { 
if ( value limit ) { 
value Ø;

    定义成员变量private,能在定义成员变量的时候使用,如图先定义了value,然后直接在定义limate时候使用value。private只能在同一个class类里面使用,不能再别的类里面使用。如图

    Display. java 
dsplay

    新建一个display的包,可以将clock包的java文件拖到新建的display的包里。

    9 
} ssop 
Ι

    然后Clock类里的java文件里面就会出现import display.Display;

    然后Cloc类里,就可以调用Display类的函数。所以在Display类里面,定义函数的时候就需要public + 函数类型+函数名称(),如果不加public,那就定义为是函数是friendly型,只有函数类型+函数名称() 的函数在被别的类调用的时候,必须要同一个包内才可以。

    在Clock.java里,使用规则就是 display.Display。(包名.包里面的类名)

    如果不用import,就必须要在定义成员变量的时候加上要调用的那个类的包的名字(还有private),也就是如图。但是一般还是用import。

    } ΡΟΙ) ssop

    如果

    clock 
src 
Clock 
Clock-java 
display.led 
3 
4 
5 
6 
invort displayÄed.Dispiby•, 
public class Clock { 
private Display hour — new I

    新建了一个display.led,那在Clock类里面的import也要改变名字。

    1. 类变量

    priate static int a = 0;这个用了static定义的成员变量不属于这个类,不是谁的对象,叫做类变量

    可以直接用 类的名字.a = 3;来访问这个变量。

    28 
29 
.03 
36 
37 
static { 
Display dl Display(IØ)•. 
Display d2 - r. 
dl. i rxrease() 
Syste. n(dl 
Syste. Wt. print in(d2 . *C)); 
Syste. ret. step); 
Syst— . Wt. print In(dZ. 
. alt. n(dl.

    new两个新对象d1,d2。其中一个访问类变量让其=2,则两个对象所输出的类变量的值都是2

    pLbIic static void { 
pLbIic static void rnin(StringO args) { 
Display dl — Display(1Ø); 
Display d2 ne•d Display(2Ø); 
dl. increase() ;

    static函数和成员变量,都可以通过类的名字来进行访问,(static main函数可以直接调用static函数,也可以通过对象的名字来访问d1.f(),但不能获得这个对象的具体信息。)

    static类型只能调用static类的函数,此时定义value的时候不是static类型的,因此f不能使用它

    pLbIic static void { 
.vqvue 
26

    21.

    public Clock(int hour, int minute, int second); 
*hour, 
public void tick(); 
BSE-Eli'). 
public String tostring(); 
String. format() 
public static void main(String[] args) { 
java.util.Scanner in = new java. util. Scanner(System.in); 
Clock clock = new in.nextlnt(), in.nextlnt()); 
clock. tick(); 
System .out_ println(clock); 
in .close();

    private int value = 
private int Limit — 
public Display 
this . 
public void increase ( ) 
vaLue++; 
if (value 
value = 
L imit) { 
public int geCVaLue ( ) 
return value; 
public void setVaIue (int value) 
this. value = 
val ; 
class Clock 
private Display hcnar 
new Display (24) ; 
private Display minute = new Display (60) ; 
private Display second = new Display (60) ; 
public Clock (int hour, int minute, inc second) 
this . hour . setVaIue (hour) ; 
this . minute . seCVaLue (minute) ; 
this . second. seCVaLue (second) , 
public void tick() 
this . second. increase ( ) ; 
if (this. second. geCVaLue() 
this. minute . increase ( ) ; 
0) 
this . hour. increase ( ) ; 
public String tcSCring() l/ / 
hour , 
"hh :mm: ss" 
ml second 
return String. format this.hour.geCVaIue(), Chis.minute.getVaIue ( ) , 
this. second. geCVaIue() ) ; //

    CD[$]7tFMOOC 
计 数 循 环 
nt count : 100 ; 
while ( count > : 0 ) { 
小 套 路 : 如 果 要 模 拟 迈 仃 一 
count-I; 
sy 、 t 。 . “ t . p 。 i 。 tl 。 ( 。 个 很 大 次 数 的 循 环 , 可 以 模 
拟 较 少 的 循 环 次 数 , 然 后 作 
出 推 断 。 
System.out.println(" 发 射 
· 这 个 循 环 需 要 执 行 多 少 次 ? 
· 循 环 停 下 来 的 时 候 , 有 没 有 输 出 最 后 的 0 ? 
· 循 环 结 束 后 , c 。 unt 的 值 是 多 少 ?

    int x; 
double sum = 
int cnt — 
into numbers new int[1ØØ]; 
x = in. nextlnt(); 
while ( x -1 ) 
numbers[cnt] = x; 
sum x; 
Ctrl + + A 
Ctrl + Alt + O 
m/cnt ; 
for ( int i=Ø; i<cnt; i++ ) 
if ( numbers[i] > average ) 
ystem. out. println(nurnbers ;

    同一个数组中的每一个元素类型一样,且一旦创建数组就不能改变大小

    22.

    int cnt e; 
cnt in.nextlnt(); 
if ( cnt> ) 
into tubers inttcnt),• 
for ( int i•ø; ) 
runersCiJ ;

    定义变量数组,输入一个cnt,然后再确定数组空间,继续遍历数组,输出数据。

    每 个 数 组 有 一 个 内 部 成 员 | ength , 会 告 诉 你 它 的 元 素 
的 数 量

    遍历number这个数组,number.length;

    素数

    Scanner in new Scanner(System. in); 
int 
int 
for 
n in.nextlnt(); 
isPrire 1; 
14 
27 
( int i 2; io•,•, i++ ) 
if (nXi—Ø) 
{1 
isPrime O; 
System. Wt. , ; 
if ( isPrire 1 ) 
System. Wt. " ) ;

    System.out.println(n+" 不 是 素数D;

posted @ 2023-02-26 15:20  DavisSamuel  阅读(16)  评论(0编辑  收藏  举报
Live2D