这是一个不与人见面,也能活得很好的时代,反而有点令人想与人相遇。
目录
面向对象的概述
对象
object表示任意存在的事物,是一个抽象的概念。
属性:静态部分(不能动的部分),任何对象都具备其自身属性,如:一个人包括高矮、胖瘦。
类
是同一类事物的统称。(对象属于某个类,但不能说类属于某个对象)
例:麻雀属于鸟类,但鸟类不能说属于麻雀。
封装
面向对象编程的核心思想,将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体就是类。
类通常对客户隐藏其实现的细节。(就像用户使用计算机,只需要用就好,不需要知道计算机内部是如何工作的)
继承
当处理一个问题时,可以将一些有用的类保存下来,这些类通常有相同的属性,甚至相同的方法。当遇到同样的问题是就可以拿出来复用。
例:
鸽子具有与鸟类相同的属性和行为。便可以在创建鸽类时将鸟类拿来服用,并且保留鸟类具有的属性和行为。
多态
将父类对象应用于子类的特征就是多态
(子类继承父类,同时又有自己的其他特征)
成员变量
类与对象
成员变量是java中类的属性
public class Bird{ String wing;//翅膀 /* *Bird类的属性:wing claw,beak feather */ String claw;//爪子 String beak;//嘴 String feather;//羽毛 }
成员方法
类的行为(方法)
例:进行投票选举,类提供一种方法,我们调用会返回一种结果。
方法(函数):
[权限修饰符][返回值的类型]方法名([参数类型 参数名])[throws 异常类型]{
...//方法体
return 返回值;
}
public class Demo{ int sum(){ return 1+1; } public static void main(String[] args){ Demo d=new Demo(); int a=d.sum(); Sytsem.out.println(a); } }
方法的返回值:
int sum(){
return 1+1;
} (方法返回一个Int值)
方法的返回值可以是任何基础类型(int,double,boolean)也可以是任何可用的类(String,object)也可以是任意类型的数组或者无返回值也可以。
public class Demo{ int sum(){ int i=0; for(i=0;i<=3;i++){ if(i==2){ return 9; } i++; } return i; } public static void main(String[] args){ Demo d=new Demo(); int a=d.sum(); Sytsem.out.println(a); } }
局部变量
局部变量:在成员方法内定义的变量
例:
public String getName(){ int id=0; //id为局部变量 return id+name; }
局部变量的有效范围:声明到结束。
public String getName(){ int id=0; //id为局部变量,作用范围从getName(){..} //"{}"里面的都是作用区间 for(int i=0;i<2;i++){ i++; } //i为局部变量,它的作用区间是从for(){ }开始, "{}"大括号里面的内容是它的作用区间 return id+name; }
在连个不同嵌套区域中可以定义同名,同类型的局部变量
public void doString(String name){ int id=0; for(int i=0;i<3;i++){ System.out.println(name+String.valueOf(i)); } for(int i=0;i<2;i++){ System.out.println(i); } //在连个不同嵌套区域中可以定义同名,同类型的局部变量 }
this关键字
变量与参数重合
this:代表类本身的对象
示例
public class Book{
String name="as";
public void showName(String name){
System.out.println(this.name);
}
public static void main(String[] args){
Book b=new Book();
b.showName("123");
}
}
//结果是as,this相当于本身这个类的对象,我们调用本身的对象,避免与方法中的参数相同
this调用本身构造方法
public class Bird{
Strinng name;
public Bird(){
}
public Bird(String name){
this.name=name;//成员变量=参数的值
System.out.println("鸟的名字叫"+this.name);
}
}
类的构造方法
构造方法
与类同名的方法,对象的创造方法是通过构造方法完成的。
例:
Public class Bird{
public Bird(){
} //Bird的类的构造方法(可以在构造方法中做类的初始化)
}
注意:1:构造方法名与类名相同。 2:构造方法没有返回值。
public class Bird{ String wing; String claw; String beak; String feather; public Bird(){ feather="红色"; } }
私有的构造方法
private修饰 无法使用new 实例化
//main部分 public class Demo{ public static void main(String[] args){ Book b=Book.getBook();//Book的静态方法getBook } } // public class Book{ public Book(){ } public.static Book getBook(){ return new Book();//自己创建 } }