A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lanbuohan 中级黑马   /  2013-7-4 14:08  /  932 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

上面的文字是这个程序的知识点,下面是一些小程序
1.
   A、继承使程序呈现多个状态,使程序更好面对现实世界,更好地解决现实问题。
   B、继承中子类可以继承父类的公有方法,但不能对其私有方法进行调用。
   C、子类继承父类的方法,比如有两个“哭"、"笑",但是子类可以选择只对”笑“
   这个方法进行表达。
第一个知识点:
class Human
{
public void laugh()
{
  System.out.printf("笑");
}

public void cry()
{
  System.out.printf("哭");
}
}
class Student extends Human
{
public void doHomework()
{
  System.out.printf("做作业");
}
}
public class Test_S
{
public static void main(String[] args)
{
  Student s = new Student();
  s.laugh();
  s.cry();
  s.doHomework();
}
}
2、如果你定义的一个有参数的构造函数,必须对其赋值。

class A
{
private int i ;
boolean flag = true;

public A(int j, boolean f)
{ i = j;
  flag = f;
}

public void show()
{
  System.out.println(i + ", " + flag);
  //System.out.println( i +", " + flag  ); +号不能随便的改变。
}

public A()
{
  System.out.printf("无参构造函数的调用");
}
  
}
public class Test_R
{
public static void main(String[] args)
{
  new A(8,false).show();
  new A(9,true).show();//调用无参构造函数。
  A aa = new A();//调用无参构造函数
  //new A(); 调用不了 无参构造函数。
}
}
1、下面这个函数证明在同一个类中,访问修饰符不没有任何限制的。
2、下面这个函数是一个循环来回调用,在编辑,运算都不会出错,不停的在亚栈。
3、在类中函数中的变量可以不进行初始化。
class A
{
public int i ;
private int j ;

public void f()
{
   i = j = 111;
   g();
}
private void g()
{
  j = i = 222;
  f();
   
}
}
public class Test_Q
{
public static void main(String[] args)
{
  A aa = new A();
  aa.f();
}
}

1、this指针的应用。this指针带着主调函数的地址,去调用被调函数。
2、这种写法保证的数据的安全性,外部不可以对数据进行修改,增大数据的安全性。
3、this指针只存在非静态成员里。
4、静态的成员可以调用类中其它静态成员的变量(成员)和方法(函数),而不能
   访问非静态成员,因为在访问非静态成员时,需要创建以个对象(A aa = new A())
   而在静态成员中,不用创建对象就可以直接访问。
5、总结4的话:静态的不能访问非静态成员;但是非静态可以访问静态成员。
*/
class Student
{
public static int cnt = 0;
private String sname;
private int sage;
public Student()
{
  cnt++;
}

public Student(String name, int age)
{
  this.sname = name;
  this.sage  = age;
  cnt++;
  
}
}
public class Test_P
{
public static void main(String[] args)
{
  //System.out.println("Student.cnt = ", +Student.cnt);
  Student st1 = new Student("zhangsan", 20);
  Student st2 = new Student("lisi", 30);
  Student st3 = new Student();
  System.out.printf("Student类总共构造了%d个对象!\n",Student.cnt);
}
}

1、接口方法不能带有主体
2、接口有两个方法,如果只想调用一个方法,这时应该声明实行类为abstract抽象类,接口的属性是不能修改的,因为是final类型。。
interface It1
{
public void f();
// {
//  //System.out.printf("FFFF\n"); //是错误的。
// }

void g();
}

abstract class A  implements It1
{
public void f()
{
  System.out.printf("AAAA\n");
}
}
class B extends A
{
//如果要实现对接口的覆盖,必须在void前加public
public  void g() //必须对接口中得g()进行覆盖
{            
}
}

public class Test_N3
{
public static void main(String[] args)
{
  B bb = new B();
  bb.f();
  
  System.out.printf("哈哈");
}
}

1、子类是可以调用父类中继承来得公有部分,但前提是子类在继承后,没
   有对其继承来的公有方法进行重写,也就是没有对其进行覆盖。
2、如果子类在继承父类公有方法,只是对名字,参数类型应相同,才是对
   其的重写。
   这样要记住在重写时,访问权限的不同也是一个因素。子类的方法访问
   权限一定要高于基类中方法的访问权限,只有这样才能进行覆盖,重写。
   public 大与protected

class A
{

protected int f(int i)
{
  System.out.printf("AAAA\n");
  return 10;
}
}
class B extends A
{
public  int f(int i)
{
  System.out.printf("BBBB\n");
  return 10;
}
}
public class Test_L
{
public static void main(String[] args)
{
  B bb = new B();
  bb.f(10);
}
}

1、在这个程序中,this指针的应用,当main中aa1调用public A时,
  A的this指针指向A,这时将this附加到j上面,j在赋给的i,i在被
  show输出,此时,show(A的方法)就知道是谁在调用它。
*/
class A
{
public int i;

public A(int j)
{
  i = j;
}

public void show()
{
  System.out.println("i = " + i);
}
}
class Test_I
{
public static void main(String[] args)
{
  A aa1 = new A(5);
  A aa2 = new A(8);
  
  aa1.show();
  aa2.show();
}
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马