Skip to content

Commit 3aa1494

Browse files
committed
add innerclass multy extends example && lintcode
1 parent d23a1fa commit 3aa1494

File tree

13 files changed

+150
-75
lines changed

13 files changed

+150
-75
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.duwei.lintcode;
2+
3+
/**
4+
* 设计一个算法,计算出n阶乘中尾部零的个数
5+
* <p>
6+
* 您在真实的面试中是否遇到过这个题?
7+
* 样例
8+
* 11! = 39916800,因此应该返回 2
9+
*/
10+
public class HowManyZero {
11+
12+
public static void main(String[] args) {
13+
new HowManyZero().trailingZeros(11);
14+
}
15+
16+
17+
public long trailingZeros(long n) {
18+
// write your code here, try to do it without arithmetic operators.
19+
long m = n+1;
20+
int sum = 1;
21+
while (m-- > 1) {
22+
System.out.println(m);
23+
sum *= m;
24+
}
25+
System.out.println(sum);
26+
int num = 0;
27+
while (sum % 10 == 0) {
28+
sum = sum/10;
29+
num++;
30+
}
31+
System.out.println(num);
32+
return num;
33+
}
34+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.duwei.lintcode;
2+
3+
public class LowCase2Upcase {
4+
5+
6+
public static void main(String[] args) {
7+
8+
char s = 'a';
9+
String str = String.valueOf(s);
10+
11+
String up = str.toUpperCase();
12+
up.charAt(0);
13+
}
14+
15+
}

src/com/duwei/thinkingjava/innerclass/ClassInFunction.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
package com.duwei.thinkingjava.innerclass;
22

3+
/**
4+
* 演示在方法里面声明类,
5+
*/
36
public class ClassInFunction {
47

5-
//类里面放interface
8+
//类里面放interface
69
interface Destination{
710
String readLabel();
811
}
912

10-
//方法里面有个类
13+
//方法里面有个类
1114
public Destination destination(String s){
1215

1316
class pDestination implements Destination{
Lines changed: 43 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,51 @@
11
package com.duwei.thinkingjava.innerclass;
2+
23
/**
3-
* 访问非静态内部类的方法
4-
* 访问外部类的属性
5-
* @author 杜伟
4+
* 访问非静态内部类的方法
5+
* 访问外部类的属性
6+
*
7+
* @author 杜伟
68
*/
79
public class OutterClass {
8-
private String name = "duwei"; //私有变量
9-
public String sex = "man"; //公有变量
10-
private static int age = 15; //静态变量
11-
12-
interface IPrintString{
13-
String print();
14-
}
10+
private String name = "duwei"; //私有变量
11+
public String sex = "man"; //公有变量
12+
private static int age = 15; //静态变量
13+
14+
interface IPrintString {
15+
String print();
16+
}
17+
18+
public String sayOutter() { //局部内部类
19+
class PrintString implements IPrintString {
20+
@Override
21+
public String print() {
22+
return "Outter";
23+
}
24+
}
25+
return new PrintString().print();
26+
}
1527

16-
public String sayOutter() { //局部内部类
17-
class PrintString implements IPrintString{
18-
@Override
19-
public String print() {
20-
return "Outter";
21-
}
22-
}
23-
return new PrintString().print();
24-
}
25-
26-
public String sayOutter2(){
27-
return new IPrintString() { //这是匿名内部类
28-
@Override
29-
public String print() {
30-
return "Outter2";
31-
}
32-
}.print();
33-
}
28+
public String sayOutter2() {
29+
return new IPrintString() { //这是匿名内部类
30+
@Override
31+
public String print() {
32+
return "Outter2";
33+
}
34+
}.print();
35+
}
3436

35-
class InnerClass {
36-
//private static String name = "123";//不可以有静态变量
37-
public void sayInner() { //访问外部类的私有,共有,静态属性
38-
System.out.println("inner:name="+name+",sex="+sex+",age = "+age);
39-
System.out.println(OutterClass.this.sayOutter()+";匿名内部类:"
40-
+OutterClass.this.sayOutter2());//访问外部类的方法
41-
}
42-
}
37+
class InnerClass {
38+
//private static String name = "123";//内部类不可以有静态变量
39+
public void sayInner() { //访问外部类的私有,共有,静态属性
40+
System.out.println("inner:name=" + name + ",sex=" + sex + ",age = " + age);
41+
System.out.println(OutterClass.this.sayOutter() + ";匿名内部类:"
42+
+ OutterClass.this.sayOutter2());//访问外部类的方法
43+
}
44+
}
4345

44-
public static void main(String[] args) {
45-
OutterClass outter = new OutterClass();
46-
InnerClass inner = outter.new InnerClass();//内部类对象的初始化方式
47-
inner.sayInner();
48-
}
46+
public static void main(String[] args) {
47+
OutterClass outter = new OutterClass();
48+
InnerClass inner = outter.new InnerClass();//内部类对象的初始化方式
49+
inner.sayInner();
50+
}
4951
}

src/com/duwei/thinkingjava/innerclass/OutterClassField.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.duwei.thinkingjava.innerclass;
22
/**
3-
* 内部类访问外部类的属性
4-
* @author 杜伟
3+
* 内部类访问外部类的属性
4+
* @author 杜伟
55
*/
66
public class OutterClassField {
77

@@ -12,9 +12,9 @@ public class OutterClassField {
1212
class Chinese{
1313

1414
public void say(){
15-
//内部类访问外部类的私有属性
16-
System.out.println("内部类访问外部类的私有属性"+new OutterClassField().name);
17-
System.out.println("内部类访问外部类的公有属性"+new OutterClassField().sex);
15+
//内部类访问外部类的私有属性
16+
System.out.println("内部类访问外部类的私有属性"+new OutterClassField().name);
17+
System.out.println("内部类访问外部类的公有属性"+new OutterClassField().sex);
1818

1919
}
2020

src/com/duwei/thinkingjava/innerclass/PrivateInnerClassTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ public int add(int a, int b) {
1717
}
1818

1919
public void say(){
20-
System.out.println("x的值"+x);//访问外部类的私有方法
20+
System.out.println("x的值"+x);//访问外部类的私有方法
2121
}
2222
}
2323

2424

2525
public static void main(String[] args) {
2626

27-
Inner f = new PrivateInnerClassTest().new Inner();//可以访问私有内部类
27+
Inner f = new PrivateInnerClassTest().new Inner();//可以访问私有内部类
2828

2929
System.out.println(f.add(10, 20));
3030
f.say();

src/com/duwei/thinkingjava/innerclass/StaticInnerClassTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package com.duwei.thinkingjava.innerclass;
22
/**
3-
* 静态内部类
4-
* @author 杜伟
3+
* 静态内部类
4+
* @author 杜伟
55
*/
66
public class StaticInnerClassTest {
77
private String name = "StaticInnerClassTest";
88
private static String name2 = "StaticInnerClassTest2";
99

10-
interface InnerClassInterface{ //接口里面定义类
10+
interface InnerClassInterface{ //接口里面定义类
1111
void print();
12-
class TestInnerClassInterface implements InnerClassInterface{//接口里面的类可以实现该接口
12+
class TestInnerClassInterface implements InnerClassInterface{//接口里面的类可以实现该接口
1313
@Override
1414
public void print() {
1515
System.out.println("InnerClassInterface");
@@ -23,7 +23,7 @@ static class InnerClass{
2323
public void say(){
2424
System.out.println("inner="+name);
2525
System.out.println("age="+age);
26-
//System.out.println(StaticInnerClassTest.this.name);//内部类先加载了,外部类不可达
26+
//System.out.println(StaticInnerClassTest.this.name);//内部类先加载了,外部类不可达
2727
}
2828
}
2929

261 Bytes
Binary file not shown.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.duwei.thinkingjava.innerclass.multiextends;
2+
3+
public class ClassOne {
4+
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package com.duwei.thinkingjava.innerclass.multiextends;
2+
3+
public class ClassTwo {
4+
}

0 commit comments

Comments
 (0)