Java的自学之旅05

一.面向对象编程。(java的类及类的成员,面向对象的三大特征,其他关键字)

逐渐领悟多写多敲!!!

1.面向对象与面向过程(oop pop)

举例子:

打球:面向过程编写,专注于打球动作

           面向对象编写,打球的动作归属于谁?所以就出现一个人的对象,人的对象里包含了打球的动作

2.面向对象的三大特征(封装,继承,多态 )

3.java类及类的成员(java是多个不同功能的类组成)

class类来描述事物

属性:对应类中的成员变量  行为:对应类中的成员方法

Field = 属性 = 成员变量    Method = (成员)方法 = 函数

面向对象的思想:(汽车设计图[类]---对象【汽车】--类的变量【零部件】----类的成员方法【运行】)

4.类的编写语法格式

public class Person {
//    属性,成员变量可以先声明不用初始化,有默认值(简单的类)
   String name; //默认值null
    int age;//默认值0
//   行为 ,方法(打印姓名)
    public void showName(){//方法名首字母小写第二个开始大写
        System.out.println("姓名:"+name);
    }
//    获取年龄
    public int getAge(){//如果返回值只有一个那返回后一定是最后一行,使用return返回结束。
        return age;
    }

}

5.创建java的自定义类

(1)定义类【考了修饰符类名】(2)编写类的属性【修饰符,属性类型,属性名,初始化数值】(3)编写类的方法【修饰符 返回值 方法名 型参等】

//动物的类
public class Animal {
    String name;
    int eye;
    int legs;
    public void eat(String food){
        System.out.println("此种动物的食物网是"+food);
    }
    public void move(String moveType){
        System.out.println("此种动物的移动方式是"+ moveType);
    }
}

6.对象的创建和使用

public class Test1 {
    public static  void main(String[] args){
//        实例化person类,也就是创建它的对象
//        int i = 0;
//        String s = “”
       Person person=new Person();//声明一个person类型,实例化
        person.name ="张三";//给对象赋值
        person.showName();//对象调用方法
        int i=person.getAge();//返回值为默认
        System.out.println(i);

        person.age=20;//给对象age赋值
        int a =person.getAge();
        System.out.println(a);
        //实例化动物类的对象
        Animal ani =new Animal();
        ani.eat("老鼠");
        ani.move("飞");
        
    }
}
public class Test1 {
    public static  void main(String[] args){
//        实例化person类,也就是创建它的对象
//        int i = 0;
//        String s = “”
       Person person=new Person();//声明一个person类型,实例化
        person.name ="张三";//给对象赋值
        person.showName();//对象调用方法
        int i=person.getAge();//返回值为默认
        System.out.println(i);

        person.age=20;//给对象age赋值
        int a =person.getAge();
        System.out.println(a);
        //实例化动物类的对象
        Animal ani =new Animal();
        ani.eat("老鼠");
        ani.move("飞");

    }
}

7.类的成员之一 :属性(语法格式:修饰符 类型 属性名 = 初值【private:只能由该类的方法访问】public  可被该类以外的属性方法访问,类型任何基本类型,int boolean  )

1)成员变量和局部变量的区别(实例变量只能在实例化的对象中可以使用)

public class Person1 {
    {
//        这是代码块
        int i = 0;
    }
    public String name = "zhangsan";//共有的其他地方也能使用
    private int age;//私有的 可以在奔雷的方法中使用
    //修饰符可以用来修饰变量,可以指明变量是共有还是私有的,私有的不能通过对象,属的方式调用
//    实例化变量就是说在类实例化成对象之后才能使用的
    public static String sex ="男"; //static 的意思是静态的不需要实例化对象就可用
    //    直接就可通过类名属性这样方法直接调用这样的变量叫做类变量
    public void showAge(){
        System.out.println(age);
    }
}

8.类的成员之二:方法

1)语法格式(修饰符 返回值类型 方法名(参数列表){方法体语句;})

说明:修饰符:public private,protected等。

返回值类型:return 语句传递返回值,没有返回值:void.

public class Student {
    public String name;
    public int age;
    public String course;
    public String interest;
    public void showInfo(){
        System.out.println("姓名:"+name);
        System.out.println("年龄:"+age);
        System.out.println("课程:"+course);
        System.out.println("兴趣:"+interest);
    }
}
测试
Student stu=new Student();
stu.name="小明";
stu.age=18;
stu.course="语文,数学,英语,历史";
stu.interest="打球,唱歌,看电影,街舞";
stu.showInfo();

2)方法调用(没有返回值得时候用关键字void表示,那么函数中的return语句如果在最后一行可以省略不写.注意【方法中不能再定义方法,同一个类中的方法可以直接用不用再去new实例化对象】)

public class Test1 {
    public static  void main(String[] args){
      Test1 t1=new Test1();
        int area =t1.getArea(2,3);
          System.out.println(area);
    }
    public int getArea(int x,int y){
        return x*y;

    }
}

9.对象的产生成员变量类型及其初始值

byte(0) short(0) int(0) long(0L) float0.0F) double(0.0D) char('\u0000'表示为空) boolean(false)  引用类型String(null)

Student stu1=new Student();
stu1.showInfo();//直接打印属性返回初始化值

匿名对象(一次使用不管了)

new Student().showInfo();//匿名对象

练习

(1)创建一个person2 属性(name age sex)调用study输出字符串studying调用showAge()方法显示age值,调用addAge()方法给对象age的属性增加两岁

第一步

public class Person2 {
    public String name;
    public int age;
    public int sex;
    public void study(){
        System.out.println("studying");
    }
    public void showAge(){
        System.out.println(age);
    }
    public int addAge(int i) {
        age += i;
        return age;
    }
}

第二部测试输出

public class Test1 {
    public static  void main(String[] args){
Person2 p=new Person2();
p.name="luxi";
p.age=11;
p.sex=1;
p.study();
int b = p.addAge(2);
System.out.println("b:"+b+"p.age:"+p.age);}
}

(2)圆的面积计算

1)类的建立

public class Clircle {
    public double area(double r){
        return 3.14*r*r;
    }
}

2)测试输出

public class Test1 { public static void main(String[] args){

double area1 = new Clircle().area(2);

System.out.println("半径为2的圆输出的面积是:"+area1);

}

10.方法的重载(overload)(在同一个类中,允许存在一个以上的同名方法,只要他们的参数个或者参数类型不同即可数)以下三个类型的方法对比理解

public int add(int x ,int y){
    return x+y; }
public int add(int m ,int n){ return m+n; }//与名称无关不能这样共存重复了方法
public double add(int x ,double y){
    return x+y; }
public int add(int x ,int y,int z){
    return x+y+z; }

例题

1.写程序定义三个重载方法并且调用方法名mOL;三个方法分别接收一个int参数,两个int参数,一个字符串分别执行平方相乘并输出结果和字符串信息,在main中调用三个方法

public class Test1 {
public static  void main(String[] args){

Test1 t0 =new Test1();

t0.mOl(2);

t0.mOl(2,3);

t0.mOl("重载方法mol");}

public void mOl(int i ){
    System.out.println(i*i*i); }
public void mOl(int x,int y ){
    System.out.println(x*y); }
public void mOl(String s){
    System.out.println(s); }

}

2.用重载的方法写三个分别两个int值中的最大值,两个double中的最大值,三个double的最大值
public class Test1 {
public static  void main(String[] args){
Test1 t2 =new Test1();
t2.max(2,3);
t2.max(2.2,3.6);
t2.max(1.2,2.6,3.9);}
public void max(int x,int y ){if (x>y)
{System.out.println("最大值是:"+x);}else
{System.out.println("最大值是:"+y);} }
public void max(double x,double y ){double res =0;
    if (x>y)
{res=x;}else
{res=y;}System.out.println("最大值是:"+res);

}
public void max(double x,double y,double z ){
    double res = 0;
    if (x>y)
    {   if (x>z)
          {res=x;}else{res=z;}}
    else {
        if (y>z){res=y;}else{res=z;

        }
    }
   System.out.println("最大值是:"+res);

}

}

ok今天的快乐就到此为止了,总的来说今天的知识比较有趣好玩了,希望明天也这么快乐的学习吧!!!gogogo!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值