(下面是我对类与对象以及其他一些java基础知识的理解,不当之处欢迎大家指出)
1.高级语言是用来帮助我们与计算机对话,我们通过编程指导计算机完成功能
2.面向对象的分析:
1)类与对象
类:是指具有很多相同点的集合,不是实体
在eclipse中新建类的方法:
<span style="color:#000000;">public class 类名</span>
<span style="color:#000000;">public class Teacher</span>
对象:是指组成类的个体,是实体
新建类的方法是:
<span style="color:#000000;">类名 对象名=new 类名();</span>
<span style="font-size:14px;color:#000000;">Teacher t=new Teacher();</span>
2)面向对象编程分析
面向对象即只关注动作(方法)的执行者是谁
比如:学生上课,这件事中关注的是学生而不是学生怎么上课
3)面向过程编程分析
面向过程即关注动作(方法)是怎样执行的
一个类的特征的定义的方法:
public class 属性名;
<span style="font-size:14px;color:#000000;">public String name;</span>
一个类的方法的定义的方法:
public 返回类型 方法名(参数列表)
<pre class="html" name="code">public void teach(String stuname)
{
System.out.println(name+"老师正在给"+stuname+"学生上课");
}
用对象调用属性的格式:对象名.属性名
Teacher t=new Teacher();
//给对象命名
t.name="张三";
用对象调用方法的格式:对象名.方法名(参数)
Teacher t=new Teacher();
//执行行为(调用方法)
t.teach("李四");
构造方法:构造一个对象
如
Teacher t=new Teacher();
t就是构造的一个对象
内存中堆栈大致意思为下图:
新创建的对象传址给对象名,保存在堆中,类的属性及方法都保存在栈中
构造方法基本格式:public 类名(参数列表){}
public void teach(String stuname)
{
System.out.println(name+"老师正在给"+stuname+"学生上课");
}
方法重载:
就是在同一个类里面,几个方法的方法名相同,但参数不同
如以下几种
public class Teacher
{
public void teach(String stuname)
{
System.out.println(name+"老师正在给"+stuname+"学生上课");
}
public void teach(String stuname)
{
System.out.println(...........);
}
public void teach(String stuname,int stuage)
{
System.out.println(.......);
}
public void teach(int stuage)
{
System.out.println(..........);
}
}
三种方法互为重载
继承关系:
子类继承到父类除私有属性之外的所有属性,并可以派生出自己的属性即方法
父类有的,除私有属性外,子类都有
如下面两个类:
public class A
{
public String name;
public void eat(){
System.out.println("吃.......");
}
}
public class B extends A
{
B b=new B();
b.eat();
}
B通过关键字extends继承父类A的方法并调用了它
方法重写:
子类通过重写父类继承过来的方法来覆盖掉父类的方法,但方法名,参数,返回类型等都不能变
如下面例子:
public class A
{
public String name;
public void eat(){
System.out.println("吃.......");
}
}
public class B extends A
{
B b=new B();
public void eat(){
System.out.println("吃fffffffffffffff");
}
b.eat();
}
则最后输出结果应为"吃ffffffffffffffffffff"
实现了方法重写,应与重载区分开
自动转型:
当子类对父类方法进行重写后,调用的是重写后的方法,如果没有重写,调用的方法则依然是父类的
例子同上