~天亮了,我来了~
月色醉美了时光,
散落一汪星籍,
斑驳间,
却又窥探岁月星辰大海。---张睿霖
java基础:
面向对象-三大特性:(继承,多态,封装)
基础,包,类,接口,方法,对象,属性
数据类型byte, short, int, long,float,double,char,bool;
变量类型:局部变量,实例变量(成员变量),类变量(静态变量)
修饰符:public private protected static final等等
运算符 算术运算符:+-*/%,++,--;
关系运算符:==,!=,>,<,>=,<=等等
逻辑运算符&&,||,!等等
赋值运算符:=,+=,-=,*=,/=
三目运算符:x>n?x=0:x=1;
Java三大特性(重难点)
1)封装----私有化
封装就是把同一种事物的共性(包括属性和方法)归于一类中,方便使用
封装和继承几乎是为多态而准备的。
封装也称为信息隐藏,是指利用抽象数据类型把数据和基于数据的操作封装起来成为一个不可分割的整体。数据隐藏在抽象数据内部,尽可能地隐藏数据细节,保留一些接口使其与外界发生联系也就是用户无需知道你内部的数据和方法的具体实现细节,只需依据留在外面的接口进行操作就行
2.封装的实现
需要修改属性的访问标识符(改为private);
创建getter/setter方法(用于属性的读写)
在getter/setter方法中加入属性控制语句(if,else while等条件判断)
为了实现良好的封装,我们通常把类的成员变量声明为private,为了能够在外部访问,我们可以定义public方法来对这个变量进行访问。对于一个变量的操作,一般有读取和赋值两个操作(get xx)为读取,set xx 用来对这个变量赋值
Boolean的个体方法默认名为is xxx()
1)四则运算 2)结构体-输入个人信息
package fengzhuang
public class Calculator{
private int a;
private int b;
int c;
public void setA(int a)
this.a=a;
}
public void setA(int a)
{
this.a=a;
}
public int getA()
{
return a;//返回到private int a;
}
public void setB(int b)
{
this.b=b;
}
public int getB()
{
return b;
}
public void augment()
{
c=a+b;
System.out.Println(c);
}
public void reduce()
{
c=a-b;
System.out.Println(c)
}
public void ride()
{
c=a*b;
System.out.Println(c);
}
public void divide()
{
c=a/b;
System.out.Println(c);
}
}
pubilc class People
{
private String name;//封装一个人的姓名,年龄。
private int name;
serter(),getter()//是该对象对外开发的接口
public String getName()
{
return name;
}
public void setName(String name)
{
this.name=name;
}
public int getAge()
{
return age;
}
public void setAge(int age)
{
this.age=age;
}
}
2)继承---父与子
通过继承,子类获得了父类的成员变量和方法。一个子类如何继承父类的字段和方法,如何修改从父类继承过来的子类的方法呢?我们一看究竟~~请坐好-发车了
继承的作用:通过继承可以快速创建新的类
在Java中通过extends来声明一个类是有另外一个类中继承过来的
class 父类{
...
}
class 子类 extends 父类{
.....
}
现在来看看书上的写法
class teacher//声明一个teacher类为父亲
{
String name;//name,age都是父亲类的成员变量
int age;
void show()//只是定义父亲成员方法,将成员变量输出
{
System.out.Println(name);
System.out.Println(age);
}
}
class Student extends teacher//声明一个Student类为子类并继承父类
{
}
public class myfirst//public类模式
{
public static void main(String[] args)
{
System.out.Println("学生");//输出
Student student=new Student();//声明一个Student类的实例对象
student.name="Tom";//子类调用父类的成员变量name并赋值
student.age=19;//age
student.show();//show
}
}
***继承的注意事项(用的不少,跳进去的也不少)~
1)子类不能选择性的继承父类,必须全部继承。
2)java不能支持多重继承,但是一个类可以实现多个接口。
3)构造方法不会被子类继承,但是可以从子类中调用父类的构造方法
俗话说的好:世上本就没有一模一样的父与子-如果子类中的方法所表示的行为与其父类中所表示的行为不完全相同,那么我们就用重写该方法来解决~~
参考代码如下:(重写)
class A
{
public void sayHello
{
System.out.Println("Hello,welcome to bluesum");
}
public void sayBye()
{
System.out.println("GoodBye,everyone");
}
}
class B extends A{
pulbic void sayHello()
{
System.out.println("大家好,欢迎来到蓝旭");//A与B在这里不同,那麽就用到重写
}
}
public class myfirst{
public static void main(String[] args)
B b=new B();
b.sayhello();//重写1
b.sayBye();//重写2
}
(隐藏)
***当调用被隐藏的方法是,调用的版本取决于是从父类调用还是从子类中调用。
class A{
public static void sayHello1()
{
System.out.Println("A的静态类方法")
}
public static void sayHello2()
{
System.out.Println("A的实例方法")
}
class B extends A
{
public static void sayHello1()
{
System.out.Println("B的静态类方法")
}
public static void sayHello2()
{
System.out.Println("B的实例方法")
}
}
pulbic class myfirst{
pulbic static void main(String[] args)
{
B b=new B();
A a=b;
A.sayHello1();//调用A类的静态类方法
a.sayHello1();//调用a对象的静态类方法
B.sayHello1();//调用B类的静态方法
a.sayHello2();//调用a对象的实例方法
b.sayHello2();//调用b对象的实例方法
A a2=new A();//创建A类的实例对象a2
a2.sayHello2();
}
}
至于super,我们下个blog会有介绍~~
3)多态---有对象,还能转变形态
多态是指方法或对象具有多种形态
前提是两个对象存在继承关系,多态是建立在封装和继承的基础上的
例题说明
定义一个 Person 类 作为父类(pulbic class xxx),定义 Student 类 和 Teacher 类作为子类(pulbic class xxx)继承父类;
Person 类 拥有 mission() 方法;##重点
Student 类 和 Teacher 类 重写父类的 mission() 方法;##继承的部分
最后在 main 函数中利用多态形式创建对象。##再定义一个类
在duotai类中定义main函数,来体现多态性~~
mission是一个方法
Person p1=new.Student(); p1.misson();//通过调用Student中的mission方法,来输出
package Fatherlei
pulbic class Person{
pulbic void mission(){
System.out.Println("父类的常量");
}
}
package Zilei1
pulbic class Student extends Person{
public void mission(){
System.out.println(学生真优秀");
}
}
pachkage Zilei2
pulbic class Teather extends Person{
public void mission(){
System.out.println("老师真体贴");
}
}
//在duotai类中编写main函数,来体现多态性
pulbic class duotai
{
public static void main(String[] args)
{
Person p1=new Student();
p1.misson();
Presin p2=new Teacher();
p2.misson();
}
}