简单周记3

本周学习:

对象数组中的每个元素都是对象的管理者而非对象本身

容器类
ArrayList<String> notes = new  ArrayList<String>();
*容器内有两个类型:
*容器的类型:比如:ArrayList
*元素的类型:  比如:  String
(现在存放的是字符串类型)
用来存放对象,在里面可以存放任意数量的对象

下面这段必须全写!
 public void add( String s){
   notes.add(s)
}
//存放数据

HashSet< String> s = new HashSet< String>();

和上面的相似,但这个的特点是不会有重复的数据
如果输入的有重复的数据,第1次出现的那个数据会自动删除

private HashMap<Integer,String> coinnames = new HashMap<Integer,String>();

//调用HashMap实现数据转换;

public Coin()

//这里是对象无static,(构造器),类似switch-case;

{

coinnames.put(1,"penny");

coinnames.put(10,"dime");

coinnames.put(25,"quarter");

coinnames.put(50,"half-dolar");

}

public String getName(int amount) {

if(coinnames.containsKey( amount))

return coinnames.get(amount);

//z这里返回的是转换后的数据;

else

return "没有找到数据";

}

//这是一个函数,实现调用数据转换;

public static void main(String[] args)

{

Scanner in = new Scanner(System.in);

int amount = in.nextInt();

Coin coin = new Coin();

//new调用;coin可以改变;

String name = coin.getName(amount);

System.out.println(name);

in.close();

}


static的表现:static修饰的变量,通过一个对象去修改那个static,别的对象里面的static也改了。
只有static的成员变量你可以使用这种方式去访问。通过类的名字加上点加变量。

 

 一个函数中是可以包含任意多个return的, 不管执行流程触发了哪个return, 都会造成当前函数立即终止, 所以不存在执行两个或以上return的可能.

成员变量:
1类变量:
有static修饰符的,有static修饰的变量即静态变量,其实质上是一个全局变量
(如果某个内容是被所有对象共享,那么该内容就应用静态修饰,没有被静态修饰的内容其实是属于对象的特殊描述)
2实例变量:
定义成员变量时没有static修饰符的就是实例变量。
成员变量和静态变量的区别:
1所属不同:
静态变量:属于类,它是一个类变量
成员变量:属于对象,他是一个对象变量
2内存中的位置不同:
静态变量:存放在方法区的静态区
成员变量:存放于堆内存
3内存中出现时候不同:
静态变量:随着类的创建而创建,随着jvm的退出而消除
成员变量:只有new对象才会创建,随着对象的消除而消除
4调用方式不同:
静态变量:可以通过类名调用,也可以通过对象调用
成员变量:只能通过对象调用
 

继承:

一个类扩展到另一个类;
并且继承另一个类的一部分(因为有的有访问权限)
 

  Java的继承只允许单继承,即一个类只能有一个父类

父类里面的private是子类不能继承的:两个解决方案:
1:可以把private改成 protected(自己可以访问,同一个包类的可以访问,子类也可以访问)
2:在父类里面为子类里面的变量构造,然后用super(title(变量的是什么就写什么))传递过去,父类里面 super();
 

如果父类里面的是private的,子类自己不能碰,但是可以通过父类的函数去碰,在谁的函数里头,指的那个成员变量,就是谁的。如果子类和父类里面出现同名的成员变量的时候,在子类的函数里面所指的这个成员变量,就是子类自己的,在父类函数里面指的就是父类自己的,他们之间没有任何联系

造型cast
子类的对象可以赋值给父类的变量
父类的对象不能赋值给子类的变量
可以用造型
造型和类型转换相似,但又不同
不同点在于:
类型转换是真的将数值转换了,比如int i=(int)10.2;这里10.2变成了10
而在造型中,对象本身并没有发生任何变化,所以不是类型转换
向上造型
拿一个子类的对象当做父类的对象来用
向上造型是默认的,不需要运算符
向上造型总是安全的


函数的调用绑定:
当通过对象变量调用函数的时候,调用哪个函数这件事情叫做绑定
静态绑定:根据变量的声明类型来决定
动态绑定:根据变量的动态类型来决定
在成员函数中调用其他成员函数,也是通过this这个对象变量来调用的
 

覆盖override
子类和父类中存在,名称和参数表完全相同的函数,这一对函数构成覆盖关系
通过父类的变量调用存在覆盖关系的函数时,会调用变量当时所管理的对象所属的类的函数
 

 例如:缩写函数中父类的item和子类中的CD
当调用父类item中的print时,会调用子类CD中的print
即子类函数覆盖父类函数
 

抽象类
抽象的函数不能有括号
抽象类是不能产生对象的,因Shape这个类型是抽象的
抽象函数:表达概念而无法实现具体代码的函数
抽象类:表达概念而无法构造出实体的类
带有abstract修饰符的函数(修饰函数或修饰类表明这个东西是抽象的)
抽象类不能制造对象
但是可以定义变量。
任何继承了抽象类的非抽象类的对象可以赋给这个变量

实现抽象函数
继承自抽象类的子类必须覆盖父类中的抽象函数
否则自己成为抽象类

两种抽象
第1种:与具体相对表示一种概念,而非实体
第2种:与细节相对表示在一定程度上忽略细节而着眼大局
 

赋值运算符:
是一个对象管理另一个对象,如果再次赋值,他们两个原有的数据都存在,只不过现在这个变量值得最新输入的那个变量
 

while(1)  一直循环

while(!x)
!x是逻辑非操作,当x为0时,值为真,否则值为假。 在这里等效于x==0。

while(!(--x));
等效于
while(--x==0);
即x自减一,判断减一后的值是否等于0,若等于0,则继续循环,否则推出;
 

生活感悟:雪压枝头,虽低不着泥,一朝红日出,依旧与天齐。

下周学习计划:

  1. 基本API
  2. 泛型与集合
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值