您的位置:首页 > 编程语言 > Java开发

Java学习基础篇(-)类和对象

2016-06-16 12:07 603 查看
本科大三时自学过java,上研之后就基本没再碰过了,现在想要重新捡起来,所以把这些整理一下,主要是用来督促自己的学习,该资料整理来源于尚硅谷-佟刚的教学视频,仅用来学习。

面向对象的三大特征

-封装(Encapsulation)

-继承(Inheritance)

-多态(Poiymorphism)

类(class)是对一类事物的描述(抽象);对象(object)是该类实物的每个个体(实际存在),也称实例(instance)

【Java类】 属性(比如说一个人的姓名、身高等),也叫做类的成员变量,方法(比如说一个人学习的方法,工作的方法等),也叫类的成员函数

声明类

语法格式

[< 修饰符>] class < 类名>

{

[<属性声明>]

[<构造器声明>]

[<方法声明>]

}

说明:修饰符public:类可以被任意访问

类的正文要用{ }括起来

}

声明属性

语法格式:

[<修饰符>] 类型 < 属性名> [=初值] ;

说明:修饰符 private: 该属性只能由该类的方法访问。

修饰符 public: 该属性可以被该类以外的方法访问。

类型:任何基本类型,如int、boolean或任何类。

举例:

public class Person{
private int age;             //声明private变量 age
public String name = “Lila”; //声明public变量 name
}


声明方法

语法格式:

<修饰符> <返回类型> <方法名>([< 参数表>]) {

[< 语句>]

}

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

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

对象的创建和使用

-使用 new +构造方法 创建一个新的对象;

-使用 “对象名.对象成员” 的方式访问对象成员(包括属性和方法);

 如果创建了一个类的多个对象,对于类中定义的属性,每个对象都拥有各自的一套副本,且互不干扰

 类的访问机制:

 在一个类中的访问机制:类中的方法可以直接访问类中的成员变量。(static方法访问非static方法会编译出错)

 在不同类中的访问机制:先创建要访问类的对象,再用对象访问类中定义的成员。

对象的创建

class Person
{
int age;
void shout()
{
System.out.println(“oh,my god! I am “ + age);
}
}
Person p1 = new Person();//执行完后的内存状态




当一个对象被创建时,会对其中各种类型的成员变量自动进行初始化赋值。除了基本数据类型之外的都是变量类型都是引用类型。

对象的使用

创建新的对象之后,我们就可以使用“ 对象名.对象成员 ”的格式,来访问对象的成员

class TestPerson
{
public static void main(String[] args)//上面程序运行的内存布局如下图
{
Person p1 = new Person();
Person p2 =new Person();
p1.age = -30;
p1.shout();
p2.shout();
}
}




对象的生命周期







匿名对象

我们也可以不定义对象的句柄,而直接调用这个对象的方法。这样的对象叫做匿名对象, 如:new Person().shout();

如果对一个对象只需要进行一次方法调用,那么就可以使用匿名对象。

我们经常将匿名对象作为实参传递给一个函数调用。

练习

1、创建一个Person类,其定义如下:

要求:(1)创建Person类的对象,设置该对象的name、age和sex属性,调用study方法,输出字符串“studying”,调用showAge()方法显示age值,调用addAge()方法给对象的age属性值增加 i 岁。

(2)创建第二个对象,执行上述操作,体会同一个类的不同对象之间的关系。

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

}
public static void main(String[] args) {
//创建对象1
Person p=new Person();
p.name="Tom";
p.age=3;
p.sex=1;
System.out.println("name:"+p.name+"\n"+"sex:"+p.sex);
p1.study();
p.addAge(3);
p.showAge();//age:6
//创建对象2
Person p1=new Person();
p1.name="Lili";
p1.age=30;
p1.sex=2;
System.out.println("name:"+p1.name+"\n"+"sex:"+p1.sex);
p1.study();
p1.addAge(2);
p1.showAge();//age:31
}
}


2、 利用面向对象的编程方法,设计类Circle计算圆的面积。

public class CircleArea {

double r;
double area;
double CircleAreaCaluate(){
area=2*Math.PI*Math.pow(r,2);
return(area);
}
public static void main(String[] args) {
CircleArea ca=new CircleArea();
ca.r=2.0;
ca.area=0;
ca.CircleAreaCaluate();
System.out.println("r="+ca.r+"\n"+"arae:"+ca.area);
//r=2
//arae:25.132741228718345
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息