title: Java基础语法(9)-面向对象之类的成员 blog: CSDN data: Java学习路线及视频
 1.面向过程与面向对象面向过程(POP) 与 面向对象(OOP)
面向过程
 面向对象
 面向对象的思想概述
程序员从面向过程的执行者转化成了面向对象的指挥者 根据问题需要,选择问题所针对的现实世界中的实体。 从实体中寻找解决问题相关的属性和功能,这些属性和功能就形成了概念世界中的类 把抽象的实体用计算机语言进行描述,形成计算机世界中类的定义。即借助某种程序语言,把类构造成计算机能够识别和处理的数据结构。 将类实例化成计算机世界中的对象。对象是计算机世界中解决问题的最终工具。
2.类和对象面向对象的概述
 类的语法格式
修饰符 class 类名 {
属性声明;
方法声明;
}
说明:修饰符public:类可以被任意访问类的正文要用{ }括起来
public class Person{
private int age ; //声明私有变量 age
public void showAge(int i) { //声明方法showAge( )
age = i;
}
}
3.对象的创建和使用创建对象语法
类名 对象名 = new 类名();
Animal xb=new Animal();
对象的使用
对象名.对象成员的方式访问对象成员(包括属性和方法)
Java中的类和对象
//Animal类
public class Animal {
public int legs;
public void eat(){
System.out.println(“Eating.”);
}
public viod move(){
System.out.println(“Move.”);
}
public class Zoo{
public static void main(String args[]){
//创建对象
Animal xb=new Animal();
xb.legs=4;//访问属性
System.out.println(xb.legs);
xb.eat();//访问方法
xb.move();//访问方法
}
}
 4.类的成员之一: 属性语法格式
修饰符 数据类型 属性名 = 初始化值 ; public class Person{
private int age; //声明private变量 age
public String name = “Lila”; //声明public变量 name
}
变量的分类:成员变量与局部变量
 class Person{
//1.属性
String name;//姓名--成员变量
int age = 1;//年龄
boolean isMale;//是否是男性
public void show(String nation){
//nation:局部变量
String color;//color:局部变量
color = "yellow";
}
}
//测试类
class PersonTest{
public static void main(String[] args){
Person p = new Person();
p.show(“USA”);
}
}
对象属性的默认初始化赋值
 5.类的成员之二: 方法什么是方法(method、函数):
方法是类或对象行为特征的抽象,用来完成某个功能操作。在某些语言中也称为函数或过程。 将功能封装为方法的目的是,可以实现代码重用,简化代码 Java里的方法不能独立存在,所有的方法必须定义在类里。
public class Person{
private int age;
public int getAge() { //声明方法getAge()
return age;
}
public void setAge(int i) { //声明方法setAge
age = i; //将参数i的值赋给类的成员变量age
}
}
方法的声明格式:
修饰符 返回值类型 方法名(参数类型 形参1, 参数类型 形参2, ….){
方法体程序代码
return 返回值;
}
修饰符:public,缺省,private, protected等
方法的分类
| 无返回值 | 有返回值 |
---|
无形参 | void 方法名(){} | 返回值的类型 方法名(){} | 有形参 | void 方法名(形参列表){} | 返回值的类型 方法名(形参列表){} |
注意 方法被调用一次,就会执行一次 没有具体返回值的情况,返回值类型用关键字void表示,那么方法体中可以不必使用return语句。如果使用,仅用来结束方法。 定义方法时,方法的结果应该返回给调用者,交由调用者处理。 方法中只能调用方法或属性,不可以在方法内部定义方法。
方法的重载
//返回三个整数的和
int add(int x,int y,int z){
return x+y+z;
}
方法中的可变个数形参
//可变参数
public void test(String a,int... b){
for (int i : b) {
Log.i("test:","b:" + i);
}
}
6.类的成员之三: 构造器构造器的特征 构造器的作用
Person p = new Person(“Peter”,15);
语法格式
修饰符 类名 (参数列表) {
初始化语句;
}
//创建Animal类的实例
//调用构造器,将legs初始化为4。
public class Animal {
private int legs;
// 构造器
public Animal() {
legs = 4;
}
public void setLegs(int i) {
legs = i;
}
public int getLegs() {
return legs;
}
注意 Java语言中,每个类都至少有一个构造器 默认构造器的修饰符与所属类的修饰符一致 一旦显式定义了构造器,则系统不再提供默认构造器 一个类可以创建多个重载的构造器 父类的构造器不可被子类继承
7.类的成员之四: 代码块代码块的作用: 代码块的分类: 静态代码块:用static修饰的代码块 非静态代码块:没有static修饰的代码块 class Person {
public static int total;
static {
total = 100;
System.out.println("in static block!");
}
}
public class PersonTest {
public static void main(String[] args)
{
System.out.println("total = " + Person.total);
System.out.println("total = " + Person.total);
}
}
可以有输出语句。 可以对类的属性、类的声明进行初始化操作。 除了调用非静态的结构外,还可以调用静态的变量或方法。 若有多个非静态的代码块,那么按照从上到下的顺序依次执行。 每次创建对象的时候,都会执行一次。且先于构造器执行。
程序中成员变量赋值的执行顺序
 8.类的成员之五: 内部类内部类概念
分类
成员内部类作为类的成员的角色
成员内部类作为类的角色
注意
非static的成员内部类中的成员不能声明为static的,只有在外部类或static的成员内部类中才可声明static成员。 外部类访问成员内部类的成员,需要“内部类.成员”或“内部类对象.成员”的方式 成员内部类可以直接使用外部类的所有成员,包括私有的数据 当想要在外部类的静态成员部分使用内部类时,可以考虑内部类声明为静态的
class Outer {
private int s;
public class Inner {
public void mb() {
s = 100;
System.out.println("在内部类Inner中s=" + s);
}
}
public void ma() {
Inner i = new Inner();
i.mb();
}
}
public class InnerTest {
public static void main(String args[]) {
Outer o = new Outer();
o.ma();
}
}
|