• 女孩:谈Java了,好耶?

  • 男孩:夜谈一下,Java的类的定义~

  • 女孩:那谈Java的类的什么呢?

  • 男孩:类的定义,对象的定义,类中的方法,构造方法,this关键字,方法的重载,Java中的类的访问权限,set和get方法,static关键字~

面向对象设计思想

设计思想的变化

例如:学生行为

对于结构化程序设计:起床,洗脸,吃饭,下课,放学

对于面向对象设计,类,类中的方法

OOP的特点

面向对象的特征

(1)封装

(2)继承

(3)多态

类的定义:

格式:

class Circle{
//类声明,类的命名第一个字母大写以便与对象区别
int r;
//成员变量,或称为类的属性
……
void print(){
//成员方法 int r=3;
//局部变量 System.out.println(r);
} }
//整个大括号里的称为类的主体部分

类的定义

类是一种复杂的数据类型

它是将数据和与数据相关的操作封装在一起的集合体

类分为两部分:类的声明和类的主体。

格式:

<类 声明>

{

<类主体>

}

主体的部分

类主体部分是由成员变量和方法组成,不可以在类中直接写表达式语句,它必须放到一个方法里。

对象的概念

对象是类的实例化

public static void main(String [] args){
Circle circle=new Circle ();//类的实例化
circle.r=1;
...
circle.print();//对象的方法调用
}

对象的创建

格式:

类名 对象名

为声明的对象分配内存,用new和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会默认调用类的构造方法。

Student student = new Student();

对象的使用

格式

对象名.成员变量名

对象名.方法名

“.”这点为英文的点。

如:

student.name

student.print();

类中的方法

在某个方法里的变量为局部变量,在类中的,方法外的变量为成员变量。

如果成员变量和局部变量同名时,则成员变量隐藏。

方法中有同名的局部变量访问时,用this关键字表示。

构造方法是一种特殊的方法,构造方法的名要与类的名相同,而且没有类型,构造方法可以重载。

this关键字为当前对象,不出现含有static中。

Student(String name, int age){
this.name = name;
this.age = age;
}

类的定义

1.定义一个Person类,主要功能是输出姓名,身高,体重,类中有两个构造方法,其中一个构造方法无参数用于初始化,另一个构造方法是有参数的,可传值

  1. 定义Person类的对象,通过对象成员方法输出对象的信息
public class Person {
String name;
double height;
double weight;
Person(){
name = "jeskson";
height = 170;
weight = 100;
}
Person(String name, double height, double weight){
this.name = name;
this.height = height;
this.weight = weight;
}
void print(){
System.out.println(this.name);
System.out.println(this.height);
System.out.println(this.weight);
}
public static void main(String[] args){
Person student = new Person();
student.print(); Person stu = new Person("jeskson",180,100);
stu.print(); }
}
public class Circle {
//成员变量
int r;
final double PI=3.14; //成员方法
double area(){
return PI*r*r;
} //成员方法
double zhou(){
return PI*2*r;
} public static void main(String[] args){
Circle c1;//定义对象
//为对象申请内存空间,自动调用构造方法,如果没有写构造方法,系统会自动产生一个无参的
c1 = new Circle();
c1.r=1;//为对象的变量赋值
System.out.println(c1.area());//输出对象成员方法的返回值
System.out.println(c1.zhou());
} }
public class Circle {
//成员变量
int r;
final double PI=3.14; //无参的构造方法
Circle(){ } //带参的构造方法
Circle(int r){
this.r = r;
} //成员方法
double area(){
return PI*r*r;
} //成员方法
double zhou(){
return PI*2*r;
} public static void main(String[] args){
Circle c1;//定义对象
//为对象申请内存空间,自动调用构造方法,如果没有写构造方法,系统会自动产生一个无参的
c1 = new Circle();
c1.r=1;//为对象的变量赋值
System.out.println(c1.area());//输出对象成员方法的返回值
System.out.println(c1.zhou()); Circle c2 = new Circle(2);//调用带参数的构造方法
System.out.println(c2.area());//输出对象成员方法的返回值
System.out.println(c2.zhou());
} }

Java中的类的访问权限

成员变量的声明

【修饰符】类型 变量名

常用的修饰符关键字有:public、 private、 protected 、 friendly、static 和final。

类:private,friendly,protected,public

包中所有类:friendly,protected,public

包外的子类:protected,public

所有类:public

类中的set和get方法

set方法是用来修改成员变量的值

get方法是用来获取成员变量的值

static关键字

使用static修饰的成员变量为静态变量;用static修饰的类,为静态类,用来修饰方法,则为静态方法。静态变量是归类所有,静态变量直接通过类调用,而不用实例化对象。静态方法也是用类名直接调用的。静态方法只能操作静态变量而不能使用实例变量。

public class Account {
private String name;
private double yu;
private int year;
private double rate=0.025; public Account() {
yu=10;
year=1;
} public Account(double yu, int year) {
this.yu = yu;
this.year = year;
} public void save(double yu){
this.yu+=yu;
} public void feach(double yu){
this.yu-=yu;
} public double total(){
return this.yu+this.rate*this.year*this.yu;
} public static void main(String[] args) {
Account zhangshan=new Account(1000, 3);
zhangshan.save(1000);
System.out.println(zhangshan.total());
}
}

package hh;

public class Worker {
private String ID;
private String name;
private double basic;
private double bonus; public Worker() {
name="jeskson";
basic=1900;
bonus=100;
ID="1024";
} public Worker(String ID, String name, double basic, double bonus) {
super();
this.ID = ID;
this.name = name;
this.basic = basic;
this.bonus = bonus;
} public String getID() {
return ID;
} public void setID(String iD) {
ID = iD;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public double getBasic() {
return basic;
} public void setBasic(double basic) {
this.basic = basic;
} public double getBonus() {
return bonus;
} public void setBonus(double bonus) {
this.bonus = bonus;
} public double getTax(){
if (this.basic+this.bonus<=1600){
return 0;
}
return (this.basic+this.bonus-1600)*0.15;
} public double getSalary(){
if (this.basic+this.bonus<=1600){
return this.basic+this.bonus;
}
return this.basic+this.bonus-this.getTax();
} void print(){
System.out.println("工人姓名:"+this.name);
System.out.println("所得税:"+this.getTax());
System.out.println("实际工资:"+this.getSalary());
} public static void main(String[] args) {
Worker jack=new Worker("1024", "jeskson", 1400, 100);
jack.print();
}
}
public class Student {
String name;
int age;
double height;
double weight;
static Strin monitor;
public Student() { }
public Student(String name, int age, double height, double weight){
this.name = name;
this.age = age;
this.height = height;
this.weight = weight;
}
void print(){
System.out.println(name+" "+age+" "+height+" "+weight+" "+monitor);
}
static void printmonitor(){
System.out.println(monitor);
}
public static void main(String[] args){
Student.monitor = "jeskson";
Student stu = new Student("dashu",20,179,100);
stu.print(); }
}

小礼物走一走 or 点赞

夜谈Java类的定义的更多相关文章

  1. 浅谈java类集框架和数据结构(2)

    继续上一篇浅谈java类集框架和数据结构(1)的内容 上一篇博文简介了java类集框架几大常见集合框架,这一篇博文主要分析一些接口特性以及性能优化. 一:List接口 List是最常见的数据结构了,主 ...

  2. Java类的定义与类的实例化

    目录 Java类的定义与类的实例化 类的定义 定义一个简单的类 定义一个成员变量 定义一个方法 定义一个构造器 类的实例化 创建对象及使用对象: 创建对象的过程在内存中的表现 Java类的定义与类的实 ...

  3. java类中定义接口

    今天看到一个java类中定义了接口,写个备忘录,记录一下 package com.gxf.test; public class Test_interface { public interface sh ...

  4. Java类的定义及其实例化

    如果你不了解类和对象的概念,请猛击这里:Java类和对象的概念 类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public cl ...

  5. 《Java基础知识》Java类的定义及其实例化

    类必须先定义才能使用.类是创建对象的模板,创建对象也叫类的实例化. 下面通过一个简单的例子来理解Java中类的定义: public class Dog { String name; int age; ...

  6. java 类内部定义接口

    java类内部可以定义接口,作用可以看作是对类功能的进一步补充,类里面包含两部分:一部分是自己的固定的,一部分是可以变化的,而这可变的部分就编程了一个接口. 另一个作用是避免命名冲突. 示例 类Fru ...

  7. java类的定义与使用

    一 引用数据类型 1.引用数据类型的分类 我们可以把类的类型为两种: 第一种,Java为我们提供好的类,如Scanner类,Random类等,这些已存在的类中包 含了很多的方法与属性,可供我们使用. ...

  8. 浅谈java类集框架和数据结构(1)

    在另外一篇博客我简单介绍了java类集框架相关代码和理论. 这一篇博客我主要分析一下各个类集框架的原理以及源码分析. 一:先谈谈LinkedList 这是LinkedList源码的开头,我们能看到几点 ...

  9. 7.2 java 类的定义和使用

    /* * 类的定义: * 类是用来描述现实世界的事物的 * * 事物: * 属性 事物的描述信息 * 行为 事物能够做什么 * * 类是如何和事物进行对应的呢? * 类: * 成员变量 * 成员方法 ...

随机推荐

  1. MySQL中Checkpoint技术

    个人读书笔记,详情参考<MySQL技术内幕 Innodb存储引擎> 1,checkpoint产生的背景数据库在发生增删查改操作的时候,都是先在buffer pool中完成的,为了提高事物操 ...

  2. java学习笔记(四):import语法

    Import 语法是给编译器寻找特定类的适当位置的一种方法. 创建一个Employee 类,包括四个实体变量姓名(name),年龄(age),职位(designation)和薪水(salary). p ...

  3. POJ-2533.Longest Ordered Subsequence (LIS模版题)

    本题大意:和LIS一样 本题思路:用dp[ i ]保存前 i 个数中的最长递增序列的长度,则可以得出状态转移方程dp[ i ] = max(dp[ j ] + 1)(j < i) 参考代码: # ...

  4. [Java学习]多线程

    关于多进程与多线程 使用多进程的目的:提高CPU利用率. 使用多线程的目的:提高应用程序?利用率. 多线程与多进程区别:进程间内存独立:同一个进程的线程间共享"堆内存和方法区内存" ...

  5. java 期末考试复习

      //Scanner这样写? Scanner input = new Scanner(System.in); //不断获得下一个单词 names[i] = toTitleCase(input.nex ...

  6. [leetcode]27. Remove Element删除元素

    Given an array nums and a value val, remove all instances of that value in-place and return the new ...

  7. ORACLE数据库测试数据插入速度[z]

    一,没有优化的速度:Executed in 69.436 seconds drop table t purge;create table t(x int);/*清空共享池,注意在生产环境中千万不能做这 ...

  8. PHP常见的一些问题总结(收藏)

    本篇文章给大家带来的内容是关于PHP常见的一些问题总结(收藏),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1. 字符串定义的时候单引号和双引号有什么区别? 单引号加载速度比双引号 ...

  9. P1495 曹冲养猪(拓展欧几里得)

    题目描述 自从曹冲搞定了大象以后,曹操就开始捉摸让儿子干些事业,于是派他到中原养猪场养猪,可是曹冲满不高兴,于是在工作中马马虎虎,有一次曹操想知道母猪的数量,于是曹冲想狠狠耍曹操一把.举个例子,假如有 ...

  10. How to configure Samba Server share on Debian 9 Stretch Linux

    Lubos Rendek Debian 13 June 2017 Contents 1. Objective 2. Operating System and Software Versions 3.  ...