今天主要学习了以下内容:1.面向对象隐式参数this.的使用方法,2.构造方法的重载3.static变量和方法4.继承的基本概念,以下是练习时采用的程序(内附有学习笔记):
测试重载
############################################################################
package com.Hsoft.oop;
public class TestOverload {
public static void main(String[] args){
MyMath m= new MyMath();
int result=m.add(4,5);
System.out.println(result);
}
}
class MyMath {
public int add(int a,int b){
return a+b;
}
public int add(int a,int b,int c){
return a+b+c;
}
}
##############################################################################
package com.Hsoft.oop;
public class TestOverload {
public static void main(String[] args){
MyMath m= new MyMath();
int result=m.add(4,5);
System.out.println(result);
}
}
class MyMath {
public int add(int a,int b){
return a+b;
}
public int add(int a,int b,int c){
return a+b+c;
}
}
################################################################################
静态变量
package com.Hsoft.static00;
import com.Hsoft.oop.Computer;
/**
* 面向对象语言分析(以类的方式组织代码,以对象的形式来组织数据)
* 首先先要建立一个类,然后在类中先定义静态的变量,然后在在类中建立一些方法,
* (新建的方法可以带参数,也可以不带参数),然后建立一个主方法(main),没
* 有主方法程序就没有办法正常的运行,同时,定义好类以后在主函数中需要建立一
* 个对象,以此来完成对于类的操作,新建一个类的方法是:选择类中其中的一种结
* 构(静态数据或者方法(动态的行为)),然后正对这种结构,以此种形式建立一
* 个对象:方法名/静态变量名 s1= new 方法名/静态变量名();定义好了对象以后,
* 就可以对对象进行操作了。我们之前把对象已经付给了s1,那么,接下来便可以类
* 内部的静态变量和方法进行赋值了,赋值的格式为:
* s1.静态变量=值;
* s1.类内部的方法(参数);
*
*/
public class Student1 {
//静态的数据
String name;
int id;
static int ss;//ss是从属于类的,以这个类来建立一个新的对象时stactic的信息不会以模板的形式出现在对象当中;
public static void printss(){
System.out.println(ss);
// System.out.println(name);不可以这样做,原因是static变量以及static方法
//是从属于类的,不能对它进行操作找不到路径,static方法Student类信息中是没有对应的对象的;
}
public Student1(int a,int b){
this();//通过这种方法可以调用重载的构造器;调用另一个构造器时,该语句必须放到当前沟早期的第一行;
int c;
c=a+b;
}
public Student1(){
System.out.println("我是构造器2");
}
//动态的行为
public void study()
{
printss();//在本类当中可以直接使用静态的方法,因为他们都是从属于一个类,使用时不需要加类名;
System.out.println(name+"在学习");
}
public void sayHello(String sname)
{
System.out.println(name+"觉得"+sname+"是猪!");
}
}
###############################
package com.Hsoft.static00;
public class Test01 {
public static void main(String[] args){
Student1.ss=5;//不在同一个类当中,引用时需要加类名;
System.out.println(Student1.ss);
Student1.printss();
}
}
#######################################################################
继承
#######################################################################
package com.Hsoft.static00;
public class Test01 {
public static void main(String[] args){
Student1.ss=5;//不在同一个类当中,引用时需要加类名;
System.out.println(Student1.ss);
Student1.printss();
}
}package com.Hsoft.inherit;
/**
* java中类只有但继承(一个类只能有一个直接父类),没有多继承,多继承需要通过接口来实现;
* 子类继承父类,可以得到父类全部的属性和方法(构造器除外);如果定义一个类时,没有使用extends,
* 则词用的是java.lang.Obj
*
*/
public class Animal /*extends Object*/{//父类
String eye;
public void run() {
System.out.println("跑跑");
}
public void eat() {
System.out.println("吃吃");
}
}
class Mammal{
String eye; //在不同的类当中可以定义相同名字的属性;
public void run() {
System.out.println("跑跑");
}
public void eat() {
System.out.println("吃吃");
}
public void taisheng() {
System.out.println("我是胎生");
}
}
class Paxing extends Animal {
/*String eye;
public void run() {
System.out.println("跑跑");
}
public void eat() {
System.out.println("吃吃");
}
*/
public void luansheng(){
this.run();
System.out.println("我是胎生");
}
}
class Birds extends Animal {
public void fly(){
this.eye="big";
System.out.println("飞啊飞");
}
}