教材学习内容总结

第四章 认识对象

4.1 类与对象

0、Java中有基本类型和类类型两个类型系统。本章主要讲的是类类型。java编写几乎都要使用对象,要产生对象必须先定义类。类是对象的设计图,对象是类的实例。

1、定义类:生活中描述事物无非是描述事物的属性和行为。Java中用类class来描述事物也是如此。

属性:对应类中的成员变量

行为:对应类中的成员函数

定义类其实在定义类中的成员(成员变量和成员函数)

class Clothes

{

String color;

char size;

}

public class Field

{

public static voidmain(String[] args){

Clothes sun = new Clothes();

Clothes spring = new Clothes();

    sun.color = "red";
sun.size = 'S';
spring.color = "green";
spring.size = 'N'; System.out.printf("sun (%s, %c)%n", sun.color, sun.size);
System.out.printf("spring (%s, %c)%n", spring.color, spring.size);
}

}

执行结果:

sun (red, S)

spring (green, N)

构造函数是与类名称同名的方法,其中,由于参数与数据类型重名,需使用this将参数值指定给参数。

class Clothes2

{

String color;

char size;

Clothes2(String color, char size)

{

this.color = color;

this.size = size;

}

}

public class Field2

{

public static void main(String[] args)

{

Clothes2 sun = new Clothes2("red", 'S');

Clothes2 size = new Clothes2("green", 'N');

    System.out.printf("sun (%s, %c)%n", sun.color, sun.size);
System.out.printf("spring (%s, %c)%n", spring.color, spring.size);
}

}

执行结果:

sun (red, S)

spring (green, N)

2、使用标准类。Java SE 提供了标准API,这些API就是由许多类组成的。java.util.Scanner和java.math.BigDecimal就是两个基本的标准类。

使用java.util.Scanner

import java.util.Scanner;

public class Guess

{

public static void main(String[] args)

{

Scanner scanner = new Scanner(System.in);

int number = (int) (Math.random() * 10);

int guess;

    do{
System.out.print("GUESS A NUMBER:");
guess = scanner.nextInt();
}
while(guess != number); System.out.printIn("YOU ARE RIGHT!");
}

}

执行结果:

GUESS A NUMBER:6

GUESS A NUMBER:2

GUESS A NUMBER:7

GUESS A NUMBER:5

GUESS A NUMBER:1

GUESS A NUMBER:9

GUESS A NUMBER:8

GUESS A NUMBER:3

GUESS A NUMBER:4

YOU ARE RINGT!

使用java.math.BigDecimal

import java.math.BigDecimal

public class DecimalDemo

{

public static void main(String[] args)

{

BigDecimal operand1 = newBigDecimal("1.0");

BigDecimal operand2 = newBigDecimal("0.8");

BigDecimal result = operand1.subtract(operand2);

System.out.printIn(result);

}

}

执行结果:0.2

4.2 基本类型打包器

1、打包基本类型:基本类型long、int、double、float、boolean等。

2、自动装箱、拆箱。

自动装箱方法:

int i = 10;

Integer wrapper = i;

可以用Number类自动装箱。

自动拆箱:即自动取出打包器中的基本形态信息。

Integer wrapper = 10; //自动装箱

int foo = wrapper; //自动拆箱

4.3 数组对象

1、数组基础

2、操作数组对象

3、数组复制

4.4 字符串对象

1、字符串基础:又字符组成的文字符号成为字符串。

2、字符串特性:

字符串常量和字符串池:用“”写下的字符串称为字符串常量。

不可变动字符串:在java中,字符串对象一旦建立,就无法更改对象中任何内容,对象上没有任何方法可以更改字符串内容。可以使用+连接字符串 ,改用StringBuilder来改善。

4.5 查询API文档

学习java要学会使用Java API,在Windows下一定要下载CHM格式的Java API,这个版本具有检索功能,使用非常方便。

第五章 对象封装

5.1 封装

封装实际上是使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度,隐藏对象细节,将对象当做黑箱进行操作。

1、通过构造方法(构造函数)封装初始化流程。

class Cashcard

{

String number;

int balance;

int bonus;

CashCard(String number, int balance, int bonus)

{

this.number = number;

this.balance = balance;

this.bonus = bonus;

}

}

public class CardApp

{

public static void main(String[] args)

{

CashCard[] cards={

new CashCard("A001",500,0),

new CashCard("A002",300,0),

new CashCard("A003",1000,1),

new CashCard("A004",2000,2),

new CashCard("A001",3000,3),

};

for(CashCard card:cards)

{

System.out.printf("(%s,%d,%d)%n",card.number,card.balance,card.bonus);

}

}

}

3、通过成员变量封装数据

private关键词:是一个权限修饰符。用于修饰成员(成员变量和成员函数)。被私有化的成员只在本类中有效。

功能:将成员变量私有化,对外提供对应的set,get方法对其进行访问。可提供对数据访问的安全性。

5.2 类语法细节

1、public权限修饰

如果没有声明权限修饰的成员,只有在相同包的类程序代码下才可以直接存取,也就是“包范围权限”。如果想在其他包的类程序代码中存取某包的类或对象成员必须是公开成员,在java中要使用public加以声明。

2、关于构造函数

特点:函数名与类名相同;

不用定义反回值类型;

不可以写return语句。

作用:给对象进行初始化。

注意:默认构造函数的特点。

多个构造函数多个构造函数是以重载的形式存在的。

3、this关键词

特点:this代表其所在函数所属对象的引用。换言之:this代表类对象的引用。

当在函数内需要用到调用该函数的对象时,用this。

class Other{

{

System.out.printIn("对象初始区块");

}

other()

{

System.out.printIn("Other() 构造函数");

}

Other(int o )

{

this()

System.out.printIn(“Other(int o )构造函数”);

}

}

public class

ObjectInitialBlock

{

public static viod main(String[] args)

{

new Other(1);

}

}

执行结果:

对象初始区块

Othere<> 构造函数

Othere 构造函数

4、static关键词

用于修饰成员(成员变量和成员函数)

被修饰后的成员具有以下特点:随着类的加载而加载;

优先于对象存在;

被所有对象所共享;

可以直接被类名调用。

使用注意:静态方法只能访问静态成员;

静态方法中不可以写this,super关键词;

主函数是静态的。

import java.util.Scanner;

import static java.lang.System.in;

import static java.lang.System.out;

public class ImportStatic

{

public static void main(String[] args)

{

Scannere scanner = new Scanner(in);

out.print("请输入姓名:");

out.pringtf("%s 你好!%n",scanner.nextLinr());

}

}

执行结果:

请输入姓名: Any

Any 你好!

教材学习中的问题和解决过程

本周的学习内容说实话有点多,光是看书并不能都看懂弄会,许多地方都询问了同学。总的来说我还需要多多练习。

代码调试中的问题和解决过程

在第五章中对于构造方法(构造函数)封装初始化的内容没有搞懂,代码也是想同学进行了询问才勉强完成。

其他(感悟、思考等)

通过第三周的java学习,我对于教学内容越来越熟悉了,也明白了对于java学习的基本方法,对代码的编程越来越多也越来越熟练了,当然还有诸多不足需要我去补足。同时我将下周开始将代码托管,目前还没有托管成功。

参考资料

Java学习笔记(第8版)

《Java学习笔记(第8版)》学习指导

20145127《java程序设计》第三周学习总结的更多相关文章

  1. Java程序设计第三周学习总结

    1. 本周学习总结 2. 书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; ...

  2. 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...

  3. 20145213《Java程序设计》第九周学习总结

    20145213<Java程序设计>第九周学习总结 教材学习总结 "五一"假期过得太快,就像龙卷风.没有一点点防备,就与Java博客撞个满怀.在这个普天同庆的节日里,根 ...

  4. 20145213《Java程序设计》第二周学习总结

    20145213<Java程序设计>第二周学习总结 教材学习内容总结 本周娄老师给的任务是学习教材的第三章--基础语法.其实我觉得还蛮轻松的,因为在翻开厚重的书本,一股熟悉的气息扑面而来, ...

  5. 21045308刘昊阳 《Java程序设计》第九周学习总结

    21045308刘昊阳 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 整合数据库 16.1 JDBC入门 16.1.1 JDBC简介 数据库本身是个独立运行的应用程序 撰 ...

  6. 20145330孙文馨 《Java程序设计》第一周学习总结

    20145330孙文馨 <Java程序设计>第一周学习总结 教材学习内容总结 刚开始拿到这么厚一本书说没有压力是不可能的,开始从头看觉得很陌生进入不了状态,就稍微会有一点焦虑的感觉.于是就 ...

  7. 20145337 《Java程序设计》第九周学习总结

    20145337 <Java程序设计>第九周学习总结 教材学习内容总结 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JDBC可以 ...

  8. 《Java程序设计》第九周学习总结

    20145224 <Java程序设计>第九周学习总结 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的 ...

  9. 20145236 《Java程序设计》第九周学习总结

    20145236 <Java程序设计>第九周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC简介 1.JDBC是java联机数据库的标准规范.它定义了一组标准类与接口,标准API ...

  10. 20155304田宜楠2006-2007-2 《Java程序设计》第一周学习总结

    20155304田宜楠2006-2007-2 <Java程序设计>第一周学习总结 教材学习内容总结 - 浏览教材,根据自己的理解每章提出一个问题 第一章 除了书上提到的开发工具还有什么适合 ...

随机推荐

  1. 金字塔原理——MECE(Mutually Exclusive Collectively Exhaustive)

    一.金字塔原理 它的样子: 一个中心思想,分出下面2到N个思想支撑,每个分论点下面又有2到N个思想(事实或数据)支撑,以此类推,形状如金字塔.原则是以终为始(先结果后原因),以上统下,归纳分组,逻辑递 ...

  2. Python的全局和局部变量

    global1 = " def o(): #global global1; global1=2; print(global1) def p(): print(global1) if __na ...

  3. hihocoder 1334 - Word Construction - [hiho一下第170周][状态压缩+DFS]

    题目链接:https://hihocoder.com/problemset/problem/1334 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Given N wo ...

  4. 最长上升子序列 OpenJ_Bailian - 2757 dp模板

    第一种是用以前状态更新当前状态(人人为我) 第二种是用当前状态更新以后状态(我为人人) 都是n^2代码: 对于人人为我的更新方法,可以用数据结构储存“人人”对其进行线性\二分优化. ; int a[m ...

  5. 聊一聊Linux中的工作队列

    2018-01-18 工作队列是Linux内核中把工作延迟执行的一种手段,其目的不同于软中断,软中断是提高CPU的响应,尽可能的缩短关中断的时间:而工作队列主要目的是节省资源,其比较适合很微小的任务, ...

  6. Java泛型初探

    概述 泛型就是参数化类型,一提到参数,最熟悉的就是定义方法时有形参,然后调用此方法时传递实参,其实你回味一下这里.形参参数化的是变量的值,而如果你想参数化变量的类型,那就用到泛型了.同样的, 定义的时 ...

  7. js屏蔽f12键

    <script>            $(document).keydown(function(e) {                 if (e.keyCode == 123) {/ ...

  8. 【Espruino】NO.07 获取电压值

    http://blog.csdn.net/qwert1213131/article/details/27985645 本文属于个人理解,能力有限,纰漏在所难免.还望指正! [小鱼有点电] 前几节的内容 ...

  9. [py][mx]django添加后台课程机构页数据-图片上传设置

    分析下课程页前台部分 机构类别-目前机构库中没有这个字段,需要追加下 所在地区 xadmin可以手动添加 课程机构 涉及到机构封面图, 即图片上传media设置, 也需要在xadmin里手动添加几条 ...

  10. [py]py2自带Queue模块实现了3类队列

    py2自带Queue实现了3类队列 先搞清楚几个单词 Queue模块实现了三类队列: FIFO(First In First Out,先进先出,默认为该队列), 我们平时泛指的队列, LIFO(Las ...