java
类和函数
下面两端代码定义在dog类中,所不同的是一个是静态方法,一个是非静态方法。
public static void makenoise()
{
System.out.println("bark!");
}
public void makethenoise()
{
if(weight<10)
{
System.out.println("wuwuwu!");
}
eles if(weight<30)
{
System.out.println("bark!");
}
else
{
System.out.println("aroooo!");
}
}
java中的静态方法,含义是所有的对象都可以使用,即可以使用类直接调用dog.makenoise()
,就如同C++中的静态方法。DOG::makenoise()
。静态方法不属于一个具体的对象,也不属于一个具体的类,而是属于所有能够看见静态方法的地方,因此可以在任意一个地方调用。而非静态方法,往往和类绑定,需要通过类实例化一个对象才能使用非静态方法。
cs61b上将静态方法比喻成类的蓝图,即使用抽象的方法来描述,不使用具体的狗来描述
总结一下,静态的本质在于通用和抽象。
数据类型
cs61b的homework做了很好的介绍
java的数据类型分为基本类型,包括 boolen int double char
另一种则是引用类型,一般用大驼峰命名法标注。
包括String List Sets Maps
等等。
基本类型也有对应的引用类型Boolen Integer Character Double
//List
List<String> lst = new ArrayList<>();
lst.add("zero");
lst.add("one");
lst.set(0, "zed");
System.out.println(lst.get(0));
System.out.println(lst.size());
if (lst.contains("one")) {
System.out.println("one in lst");
}
for (String elem : lst) {
System.out.println(elem);
}
//Set
Set<Integer> set = new HashSet<>();
set.add(1);
set.add(1);
set.add(2);
set.remove(2);
System.out.println(set.size());
if (set.contains(1)) {
System.out.println("1 in set");
}
for (int elem : set) {
System.out.println(elem);
}
//map
Map<String, String> map = new HashMap<>();
map.put("hello", "hi");
map.put("hello", "goodbye");
System.out.println(map.get("hello"));
System.out.println(map.size());
if (map.containsKey("hello")) {
System.out.println("\"hello\" in map");
}
for (String key : map.keySet()) {
System.out.println(key);
}
java中的map和 set提供了Tree和Hash两种实现方式。
标签:map,set,java,cs61b,System,lst,println,out From: https://www.cnblogs.com/coreSoul/p/18361664